금액을 입력하여 화폐 단위별로 화폐의 매수를 계산하는 순서도를 작성하시오.
(단, 금액은 10,000원 이상이 입력되며, 화폐의 단위는 1원 권에서 50,000원 권 까지이다.)
실행 결과
package jungbo;
import java.util.InputMismatchException;
import java.util.Scanner;
public class P225MoneyCounter {
public static void main(String[] args) {
int i=50000; //화폐 단위를 저장할 변수(총 10가지)
//50000->10000->5000->1000->500->100->50->10->5->1 로 변화
int sw=0; //단위를 바꿔줄 때 사용할 변수
int money=0; //계산될 금액이 저장될 변수
int cnt; //계산된 매수를 저장할 변수
Scanner scan = new Scanner(System.in);
try{
while(true){
System.out.print("금액을 입력하세요 : ");
money = scan.nextInt();
if(money<10000){
System.out.println("10,000원 이상 입력해야 합니다.");
}
break;
}
}catch(InputMismatchException e){
System.out.println("숫자만 입력해야 합니다.");
}
scan.close();
for(int j=0;j<10;j++){ //화폐 종류가 10종류이므로 10번 반복
cnt = money/i; //금액을 단위로 나누어 몇 매인지 계산
System.out.println(i+"원 권 "+cnt+"매"); //출력
money = money-(cnt*i); //금액에서 (단위*매수)만큼 제함
if(sw==0){ //5로 시작하는 단위일 경우 5로 나누어 앞자리를 1로
i=i/5;
sw=1;
}else{ //1로 시작하는 단위일 경우 2로 나누어 앞자리를 5로
i=i/2;
sw=0;
}
}
}
}
'JAVA > 알고리즘 예제' 카테고리의 다른 글
[JAVA] 출장비 지급액 화폐 단위별 매수 계산 문제 (0) | 2016.09.15 |
---|---|
[JAVA] 부호있는 8비트 2진수를 10진수로 변환 (0) | 2016.09.15 |
[JAVA] 소수로 삼각형 찍기 (0) | 2016.09.14 |
[JAVA] 7에 가장 가까운 정수 찾기 (0) | 2016.09.14 |
[JAVA] 8bit 2진수의 2의 보수 구하기 (0) | 2016.09.14 |