package Ex5;
public class Ex5_6 {
// [5-6] 다음은 거스름돈을 몇 개의 동전으로 지불할 수 있는지를 계산하는 문제이다. 변
// 수 money의 금액을 동전으로 바꾸었을 때 각각 몇 개의 동전이 필요한지 계산해서 출력하
// 라. 단, 가능한 한 적은 수의 동전으로 거슬러 주어야한다. (1)에 알맞은 코드를 넣어서
// 프로그램을 완성하시오.
// [Hint] 나눗셈 연산자와 나머지 연산자를 사용해야 한다.
// [연습문제]/ch5/Exercise5_6.java
// class Exercise5_6 {
// public static void main(String args[]) {
// // 큰 금액의 동전을 우선적으로 거슬러 줘야한다.
// int[] coinUnit = {500, 100, 50, 10};
// int money = 2680;
// System.out.println("money="+money);
// for(int i=0;i<coinUnit.length;i++) {
// /*
// (1) 알맞은 코드를 넣어 완성하시오.
// */
// }
// } // main
// }
// [실행결과]
// money=2680
// 500원: 5
// 100원: 1
// 50원: 1
// 10원: 3
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] coinUnit = { 500, 100, 50, 10 };
int money = 2680;
System.out.println("money=" + money);
for (int i = 0; i < coinUnit.length; i++) {
System.out.println(coinUnit[i] + "원: " + money / coinUnit[i]);
money = money % coinUnit[i];
}
}
// [해설] 동전의 단위를 내림차순으로 배열에 초기화한다. 금액이 큰 동전을 우선적으로 지
// 불해야 가장 적은 동전의 개수로 거스름돈을 줄 수 있기 때문이다. 그렇지 않으면, 모든
// 거스름돈을 10원짜리로만 주게 될 수도 있다.
// 변수 money를 coinUnit[i]로 나누면 지불할 동전의 개수가 되고, 나머지 연산을 하면
// coinUnit[i]로 지불하고 남은 금액이 된다. 동전단위(coinUnit배열)의 개수만큼 이 과정
// 을 반복하면 된다.
}
'프로그래밍 > 자바의정석_5_연습문제' 카테고리의 다른 글
[5-7] 문제 5-6에 동전의 개수를 추가한 프로그램이다. 커맨드라인으로부터 거슬러 줄 금액을 입력받아 계산한다. (0) | 2015.01.05 |
---|---|
[5-5] 다음은 1과 9사이의 중복되지 않은 숫자로 이루어진 3자리 숫자를 만들어내는 프로그램이다. (0) | 2015.01.05 |
[5-4] 2차원 배열 arr2에 담긴 모든 값의 총합과 평균을 구하는 프로그램을 완성하시오. (0) | 2015.01.05 |
[5-3] 배열 arr에 담긴 모든 값을 더하는 프로그램을 완성하시오. (0) | 2015.01.05 |
[5-2] 다음과 같은 배열이 있을 때, arr[3].length의 값은 얼마인가? (0) | 2015.01.05 |