본문 바로가기

JAVA/알고리즘 예제

[JAVA] 7에 가장 가까운 정수 찾기

10개의 정수가 배열에 기억되어 있다.


10개의 정수 중에서 7에 가장 가까운 정수를 찾아 그 정수를 출력하고자 한다.


배열에 기억되어 있는 순서에 따라 10개의 정수와 7과의 차이값을 구하여 그 차이값 중 가장 최소값을 가지는 정수를 7에 가장 가까운 값으로 선택하여 출력하라.


<조건>

배열에 기억된 10개의 데이터는 절대값이 500이하의 정수라고 가정한다.


실행 결과


1회


2회


3회


package jungbo;


import java.util.Random;


public class P118TheNumberColsestTo7 {

public static void main(String[] args) {

int i; //반복문 돌리기 위한 변수

int number[] = new int[10];  //임의 정수 10개를 받기 위한 배열

Random random = new Random();

for(i=0;i<10;i++){  //절대값 500이하의 정수를 임의로 발생시킨다.

number[i]=random.nextInt(500);  //0~500까지 랜덤

if(random.nextInt(2)==0){  //0또는 1을 발생시켜서 0이면

number[i]=number[i]*(-1);  //음수로 바꿔준다

}

}

int C = 555; //현재 정수와 7의 차이를 넣어서, S와 비교하기 위한 변수

int S = 0; //7과 정수의 차를 넣을 변수

int G = 0; //7과 가장 차이가 적게 나는 수를 넣을 변수

for(i=0;i<10;i++){

if(number[i] >= 7){

S = number[i]-7;

}else{

S = 7-number[i];

}

if(C>S){ //C의 초기값이 555이므로 첫 1회 무조건 실행

C=S; //C에 7과 정수의 차이를 대입

G=number[i]; //현재 7과 가장 차이가 적게 나는 수를 G에 대입

}

}

//출력

System.out.print("[");

String c;

for(i=0;i<10;i++){

c = (i==9)?"]\n":", ";

System.out.print(number[i]+c);

}

System.out.println("7과 가장 차이가 적게 나는 수는 " + G +"입니다.");

}

}