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
}
}