C# ソース メモ 02

using System;

// リストを使う
using System.Collections.Generic;


class Program
{  

    /**
        線形探査 01  

        入力例1
        5
        -3 2 0 -1 2
        2

        出力例1
        2
     
    */
  public void linear_exploration_01(int loop_num,string inputs, int target ) {
       
         int arr = new int[loop_num];
         int result_num = 0;
         
         //=== 配列へ値格納
         for(var i = 0; i < loop_num; i++) {
            arr[i] = int.Parse(inputs[i]); // 配列を string => int 型へ変換
         }
       
        //=== 判定ロジック
        for(int i = 0; i < loop_num; i++) {
            if(arr[i] == target) {
                result_num = result_num + i;
                break;
            } else {
                no_num = 0;
            }
        }
       
        if (result_num > 1) {
             Console.WriteLine(result_num);
        } else {
             Console.WriteLine(no_num);
        }
    }

    /**
      線形探査 02: 指定された値の位置 1    

      loop_num , ループ回数
      inputs , 配列
      target , 線形探査で、見つける 対象の値

      入力例1
       5
       -3 2 0 -1 2
       2

      出力例1
      2

    */
    public void linear_exploration_02(int loop_num, string inputs, int target) {
       
        int arr = new int [loop_num];
        int result_num = 1;
       
        //=== 配列へ格納  string => int へ パース
        for(int i = 0; i < loop_num; i++) {
            arr[i] = int.Parse(inputs[i]);
        }
       
        //=== 判定ロジック
        for(int i = 0; i < loop_num; i++) {
            if(arr[i] == target) {
                result_num = result_num + i;
                break;
            }
        }
       
        //=== index を返す
        Console.WriteLine(result_num);
       
    }

    /**
        線形探査 03 : 指定された値の位置 2

        入力例1
        5
        -3 2 0 -1 2
        2

        出力例1
        5

    */
    public void linear_exploration_03(int loop_num, string inputs, int target) {

        int arr = new int [loop_num];
        int result_num = 0; //
        int non_num = 0; // target がない場合は 0 を返す

        // === 配列の値をパース
        for(int i = 0; i < loop_num; i++) {
            arr[i] = int.Parse(inputs[i]);  // string => int へ パース
        }

        // === 線形探査 開始
        for(int i = 0; i < loop_num; i++) {
            if(arr[i] == target) {
                result_num = i;
            }
        }

        // === 線形探査で見つからなかった場合は、0 を返す。
        // 見つかった場合は、見つけた index を返す。
        if(result_num > 0) {
            Console.WriteLine(result_num);
        } else {
            Console.WriteLine(non_num);
        }

    }

      /**
        線形探査 04 : 【指定された値の探索】指定された値の位置 3  

        入力例1
        5
        -3 2 0 -1 2
        2

       出力例1
        2
        5
    */
    public void linear_exploration_04(int loop_num,  string inputs, int target) {
       
        int arr = new int [loop_num];

        //=== string -> int へ パース
        for(int i = 0; i < loop_num; i++) {
            arr[i] = int.Parse(inputs[i]);
        }


        // int型を格納するリストを宣言
        var ans_list = new List<int>();
        for(int i = 0; i < loop_num; i++) {
            if(arr[i] == target) {
                // === リストへ 整数を追加
                ans_list.Add(i + 1);
            }
        }

        // リストが空ならなにもしない
        if(ans_list.Count == 0) {

        } else {
            foreach(var val in ans_list) {
                Console.WriteLine(val.ToString());
            }
        }

    }

    static void Main()
    {

        //========================== 線形探索 ==============================
        //=============== 線形探索 01 function 実行
        var n = int.Parse(Console.ReadLine());
      //  var arr = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
        string inputs = Console.ReadLine().Split(' ');
        var k = int.Parse(Console.ReadLine());
       
        Program obj = new Program();
        obj.linear_exploration_01(n,inputs,k);
         //=============== 線形探索 01 function 実行 =============== END


        //=============== 線形探索 02 function 実行
        var n_2 = int.Parse(Console.ReadLine());
        string inputs_2 = Console.ReadLine().Split(' ');
        var k_2 = int.Parse(Console.ReadLine());
       
        Program obj_2 = new Program();
        obj_2.linear_exploration_02(n_2, inputs_2, k_2);
         //=============== 線形探索 02 function 実行 =============== END

         //=============== 線形探査 03 function 実行
         var n_3 = int.Parse(Console.ReadLine());
         string[] inputs_3 = Console.ReadLine().Split(' ');
         var k_3 = int.Parse(Console.ReadLine());

         Program obj_3 = new Program();
         obj_3.linear_exploration_03(n_3, inputs_3, k_3);
         //=============== 線形探索 03 function 実行 =============== END


    }
}