아래 플로차트를 보고 프로그램을 짜 보세요
UNIT : 화폐단위
NUM : 화폐매수
SW : 스위칭 변수 , 화폐의 다음 단위를 위해
MONEY : 입력받는 금액
아래 코드는 금액을 입력받아
예)
12345
10000 1개
5000 0개
1000 2개
500 0개
100 3개
50 0개
10 4개
5 1개
1 0개
를 계산하는 프로그램 입니다
import java.util.Scanner;
public class ControlStatement {
public static void main(String[] args) {
Scanner inputMoney = new Scanner(System.in);
printRequestMoney();
int money = inputMoney.nextInt();
printMoney(money);
int unit = 10000;
int num = 0;
int sw = 0;
while (isUnitValid(unit)) {
num = getNumValue(money, unit);
money = getMoneyValue(money, unit, num);
printResult(unit, num);
if (isSwZero(sw)) {
unit /= 2;
sw = 1;
continue;
}
if (!isSwZero(sw)) {
unit /= 5;
sw = 0;
}
}
if (isUnitOne(unit)) {
printResult(unit, getNumValue(money, unit));
}
}
private static boolean isUnitValid(int unit) {
return unit > 1;
}
private static int getNumValue(int money, int unit) {
return money / unit;
}
private static int getMoneyValue(int money, int unit, int num) {
return money - unit * num;
}
private static boolean isSwZero(int sw) {
return sw == 0;
}
private static boolean isUnitOne(int unit) {
return unit == 1;
}
private static void printRequestMoney() {
System.out.print("계산할 금액을 입력하세요. : ");
}
private static void printMoney(int money) {
System.out.println("입력한 금액은 : " + money + "원 입니다.");
}
private static void printResult(int unit, int num) {
System.out.println("화폐단위 : " + unit + ", 화폐매수 : " + num + "개");
}
}