// 차이값의 절대값의 최소값일 때의 데이터 => 근사값
using System;
namespace 가까운값알고리즘
{
class Program
{
static void Main(string[] args)
{
int[] arr = { 10, 20, 30, 40, 50 };
int target = 32;
int near = 0;
int min = Int32.MaxValue;
int diff = 0; // 차이값(+)
for (int i = 0; i < arr.Length; i++)
{
// 차이값의 절대값
if (arr[i] > target)
{
diff = arr[i] - target; // 큰거 - 작은거
}
else
{
diff = target - arr[i]; //
}
// 차이값의 절대값의 최소값
if (min > diff)
{
min = diff; // 차이값의 절대값의 최소값
near = arr[i]; // 차이값의 절대값의 최소값일 때의 데이터 => 근사값
}
}
Console.WriteLine("{0}와 가장 가까운 값은 {1}이다.", target, near);
}
}
}