//[?] 원본 데이터 중에서 대상 데이터와 가장 가까운 값 구하기
/**
* 근삿값 알고리즘(Near Algorithm): 차잇값의 절댓값의 최솟값
*/
public class NearAlgorithm2 {
// 절댓값 구하기 로컬 함수
public static int Abs(int number) {
return (number < 0) ? -number : number;
}
public static void main(String[] args) {
int min = Integer.MAX_VALUE; // (초기화 영역) 차잇값의 절댓값의 최솟값이 닮길 그릇
int[] numbers = { 10, 20, 30, 27, 17 };
int target = 25; // target 설정. 타겟과 가까운 값 구하기
int near = 0; // 가까운 값
for (int i = 0; i < numbers.length; i++) {
int abs = Abs(numbers[i] - target); // 차잇값의 절댓값 담김
if (abs < min) {
min = abs; // MIN
near = numbers[i]; // NEAR: 차잇값의 절댓값의 최솟값일 때의 값
}
}
System.out.println(target + "와/과 가장 가까운 값 : " + near + "(차이: " + min + ")");
}
}
출력: 25와/과 가장 가까운 값 : 27(차이: 2)
'Dev > Java' 카테고리의 다른 글
8. 정렬 알고리즘(Sort Algorithm) (0) | 2022.08.08 |
---|---|
7. 순위 알고리즘 (Rank Algorithm) (0) | 2022.08.08 |
5. 최솟값 알고리즘 (Min Algorithm) (0) | 2022.08.08 |
4. 최댓값 알고리즘 (Max Algorithm) (0) | 2022.08.08 |
3. 평균 알고리즘(Average Algorithm) (0) | 2022.08.08 |
댓글