문제 풀이
Q1) 변수 money 에 10~5000원 까지의 난수를 발생시켜 넣는다.
단 3450,2100과 같이 1의 자리 숫자는 무조건 0이 되어야한다.
발생한 난수 money를 동전으로 바꾸면 500원, 100원, 10원짜리 동전이 각각 몇개 거슬러 지는지를 판별하는 로직을 구현하자.
단, 가능한 한 가장 적은 수의 동전으로 거슬러 주어야 하며, 배열을 사용할 것
금액:2590// 난수 => 500원: 5, 50원: 1, 10원: 4
package jdbc;
import java.util.Random;
public class TestQ1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] coin = {500, 100, 50, 10};
int money = 0;
money = new Random().nextInt(500) + 1;
money *= 10;
/* while(true){
* money=new Random().nextInt(501)*10;
* if(money !=0)
* break;
* }
*/
System.out.println("금액 : "+money);
for (int i = 0; i < coin.length; i++) {
if ((money / coin[i]) > 0) {
System.out.println(coin[i]+"원 : "+money/coin[i]+ " 개");
money %= coin[i];
}
}
}
}

Q2)피보나치 수열만들기
1 1 2 3 5 8 13 21.....바로 앞의 두 숫자를 더해서 진행되는 수열이라고 하는데
변수를 n1, n2, n3 를 생성한 뒤 n1=1,n2와 n3=0을 각각 입력해서 초기화 하고 , 키보드로 반복할 횟수를 지정하면 받는 수 만큼 피보나치 수열을 만듦 만일 5가 입력되면, 1 1 2 3 5가 나온다.
package jdbc;
import java.util.Scanner;
public class TestQ2 {
public static void main(String[] args) {
int n1 =1;
int n2,n3 =0;
System.out.println("반복할 횟수를 입력하세요 : ");
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
// 1 1 2 3 5 8 13 21 ......
for (int i = 0; i < count; i++) {
n2 = n3; // 피보나치 수열
n3 = n1;
n1 = n2 + n3;
System.out.print(n3 + " ");
}
}
}

Q3) 사용자가 현재가지고 있는 돈을 입력받고, 크림빵, 새우깡, 콜라를 잔돈을 하나도 남기지 않고 구입하는 경우의수를 모두 출력하기
단, 사용하지 않는 상품이 있으면 안된다. 크림빵 500원 새우깡 700원, 콜라 400원이다.
예를들어 당신이 소유한 금액: 4000원이라면
크림빵: 1개, 새우깡: 1봉지, 콜라: 7캔
크림빵: 2개, 새우깡: 2봉지, 콜라: 4캔
크림빵: 3개, 새우깡: 3봉지, 콜라: 1캔
크림빵: 5개, 새우깡: 1봉지, 콜라: 2캔 식으로 보여야 한다.
package jdbc;
import java.util.Scanner;
public class TsetQ3 {
public static void main(String[] args) {
int cream= 500;
int shrimp= 700;
int coke= 400;
int money =0;
Scanner sc = new Scanner(System.in);
System.out.println("당신이 소유한 금액을 입력하세요 : ");
money = sc.nextInt();
for (int i = 1; money-i*cream>0; i++) {
for (int j = 1; money-j*shrimp>0; j++) {
for (int k = 0; money-k*coke>0; k++) {
if (money == i*cream+ j*shrimp+ k*coke) {
System.out.println("크림빵 : "+i+" 개, 새우깡 : "+j+"봉지, 콜라 : "+k+" 캔 ");
}else {
System.out.println("잔돈이 있어서 계산이 불가 합니다.");
}
}
}
}
}
}


'JAVA' 카테고리의 다른 글
| [JAVA] 재귀 호출 (0) | 2022.08.10 |
|---|---|
| [JAVA] 문제풀이 0810 (0) | 2022.08.10 |
| [JAVA] JDBC (0) | 2022.08.09 |
| [JAVA] Server Socket 서버 클라이언트 프로그램 만들기 (0) | 2022.08.08 |
| [JAVA] IO < 버퍼>, < byte stream>, <Char stream> (0) | 2022.08.08 |
댓글