FIF's 코딩팩토리

자바 기초 NCS교육과정(32)-랜덤함수 문제풀이 본문

Back-End/국비 NCS교과과정

자바 기초 NCS교육과정(32)-랜덤함수 문제풀이

FIF 2019. 7. 31. 20:57
반응형

이번 시간은 문제풀이 시간 입니다.

코드를 바로 보지 마시고, 충분한 시간을 가지고 고민해 보세요!

생각하는 시간이 많을수록 실력은 향상됩니다.

 

 

 

 

Question 1) Prob001_random.java

 

[클래스 정의]
  클래스명 : UserUnique
  +UserUnique()
  +makeArray() : int[ ]
  +printUniqueNumber(array:int[]) : void
   
  [문제]
  1~20 사이의 난수 10개를 발생시켜 배열에 저장한 후에 리턴하는 
  makeArray() 메서드와 생성된 배열에서 중복된 숫자를 제거하고 
  유일한 숫자만 출력하는 printUniqueNumber() 메서드를 각각 구현하시오.
   
  [프로그램 실행결과]
  << 발생된 난수 >>
   15 7  4  4  8  7  1  11  17  5 
   << 중복되지 않은 유일한 숫자 >>
   15 8  1  11  17  5

public class Prob001_random {
public static void main(String[] args) {
}// end main()
}// end class
public class UserUnique {
public UserUnique() {
}
public int[] makeArray() {
// 난수값를 발생시킨후 반환하는 프로그램을 구현하시오.
}// end makeArray()
public void printUniqueNumber(int[] array) {
// array배열에서 중복되지 않은 유일한 숫자만을 출력하는 프로그램을 구현하시오.
}// end printUniqueNumber()
}// end class

 

 

 

 

 

 

 

 

 

 

 

Answer 1) Prob001_random.java

public class Prob001_random {
public static void main(String[] args) {
UserUnique uq = new UserUnique();
int[] num = uq.makeArray();
System.out.println("<< 발생된 난수 >>");
for (int i = 0; i < num.length; i++) {
System.out.print(num[i] + " ");
}
System.out.println("\n<< 중복되지 않은 유일한 숫자 >>");
uq.printUniqueNumber(num);
}// end main()
}// end clss
public class UserUnique {
public UserUnique() {
}
public int[] makeArray() {
// 난수값를 발생시킨후 반환하는 프로그램을 구현하시오.
int[] arr = new int[10];
Random ran = new Random();
for (int i = 0; i < arr.length; i++)
arr[i] = ran.nextInt(20) + 1;
return arr;
}// end makeArray()
public void printUniqueNumber(int[] array) {
// array배열에서 중복되지 않은 유일한 숫자만을 출력하는 프로그램을 구현하시오.
boolean chk = false;
for (int i = 0; i < array.length; i++) {
chk = false;
for (int j = 0; j < array.length; j++) {
if (i != j && array[i] == array[j]) {
chk = true;
break;
}
} // end for j
if (chk == false)
System.out.printf("%5d", array[i]);
} // end for i
}// end printUniqueNumber()
}// end class

출력결과

 

Question 2) Prob002_random.java

 

 [UserPrime 클래스 정의]   
  클래스명 : UserPrime
  + UserPrime()
  + makeArray() : int[] 
  + primeNumber(array : int[] ) : void
   
  [문제]
  2~20 사이의 난수 10개를 발생시켜 배열에 저장한 후에 리턴하는 
  makeArray() 메서드와 배열에서 소수를 구하여 출력하는 primeNumber() 메서드를 각각 구현하시오.
  [출력결과]
<< 발생된 난수 >>
  15 7  4  4  8  7  2  11  17  5 
<< 소수 숫자 >>
  7 7 2 11 17 5

public class Prob002_random {
public static void main(String[] args) {
}//end main()
}// end class
public class UserPrime {
public UserPrime() {
}
public int[] makeArray() {
// 난수값를 발생시킨후 반환하는 프로그램을 구현하시오.
}// end makeArray()
public void primeNumber(int[] array) {
// array배열에서 소수만 출력하는 프로그램을 구현하시오.
}// end primeNumber()
}// end class

 

 

 

 

 

 

 

 

 

Answer 2) Prob002_random.java

public class Prob002_random {
public static void main(String[] args) {
UserPrime uu=new UserPrime();
int[] data=uu.makeArray();
System.out.println("<< 발생된 난수 >>");
for(int arr : data)
System.out.printf("%4d",arr);
System.out.println("\n<< 소수 숫자 >>");
uu.primeNumber(data);
}// end main( )
}// end class
public class UserPrime {
public UserPrime() {
}
public int[] makeArray() {
// 난수값를 발생시킨후 반환하는 프로그램을 구현하시오.
int[] arr = new int[10];
Random ran = new Random();
for (int i = 0; i < arr.length; i++)
arr[i] = ran.nextInt(19) + 2;
return arr;
}// end makeArray()
public void primeNumber(int[] array) {
// array배열에서 소수만 출력하는 프로그램을 구현하시오.
int count = 0;
for (int j = 0; j < array.length; j++) {
for (int i = 2; i < array[j]; i++) {
if (array[j] % i == 0)
count++;
}
if (count == 0)
System.out.printf("%4d", array[j]);
count = 0;
}
}// end primeNumber()
}// end class

반응형
Comments