오늘공부한것
[TIL_Java] 값을 입력받고 연산 처리하기 (스캐너, 몫, 나머지)
Cune
2021. 12. 8. 20:27
Today I Learned
/*
편의점
지불금액 : 3210원
본인금액 : 10000원
거스름돈 -> ??
5000원 -> ?장
1000원 -> ?장
500원 -> ?
100원 -> ?
50원 -> ?
10원 -> ?
*/
// 내가 짠 코드
Scanner scan = new Scanner(System.in);
int payMoney; //3210//
System.out.println("지불금액을 입력해주세요 : ");
payMoney = scan.nextInt();
int myMoney; //10000//
System.out.println("갖고계신 금액을 입력해주세요: ");
myMoney = scan.nextInt();
int changeMoney;
changeMoney = myMoney - payMoney;
System.out.println("거스름돈은 " + changeMoney + "원 입니다.");
int array[]= {5000,1000,500,100,50,10};
//오천원
int changeOcheon = changeMoney / array[0];
System.out.println("5000원 " + changeOcheon + "장 ");
//천원
int money1 = changeMoney-array[0]*changeOcheon;
int changeCheon = money1/array[1];
System.out.println("1000원 " + changeCheon + "장 ");
//오백원
int money2 = money1-array[1]*changeCheon;
int changeOback = money2/array[2];
System.out.println("500원 " + changeOback + "개 ");
//백원
int money3 = money2-array[2]*changeOback;
int changeBack = money3/array[3];
System.out.println("100원 " + changeBack + "개 ");
//오십원
int money4 = money3-array[3]*changeBack;
int changeOsip = money4/array[4];
System.out.println("50원 " + changeOsip + "개 ");
//십원
int money5 = money4-array[4]*changeOsip;
int changeSip = money5/array[5];
System.out.println("10원 " + changeSip + "개 ");
/*
편의점
지불금액 : 3210원
본인금액 : 10000원
거스름돈 -> ??
5000원 -> ?장
1000원 -> ?장
500원 -> ?
100원 -> ?
50원 -> ?
10원 -> ?
*/
//강사님코드
Scanner scan = new Scanner(System.in);
int myMoney = 10000;
int price = 3210;
System.out.println("지불금액을 입력해주세요 : ");
price = scan.nextInt();
System.out.println("갖고계신 금액을 입력해주세요: ");
myMoney = scan.nextInt();
int changeMoney= myMoney-price;
int m5000 = changeMoney / 5000;
int m1000 = (changeMoney % 5000) / 1000;
int m500 = (changeMoney % 1000) / 500;
int m100 = (changeMoney % 500) / 100;
int m50 = (changeMoney % 100) / 50;
int m10 = (changeMoney % 50) / 10;
System.out.println("총 거스름 돈: " + changeMoney);
System.out.println("5000원: " + m5000);
System.out.println("1000원: " + m1000);
System.out.println("500원: " + m500);
System.out.println("100원: " + m100);
System.out.println("50원: " + m50);
System.out.println("10원: " + m10);
힘겹게 직접 짠 코드 아랫부분이 강사님 코드처럼 쉽게 구현된다니 깔끔하고 한눈에 들어온다.
1000원권을 계산할때 잔돈을 5000원으로 나눈 나머지를 구하면 5000원권 경우가 아예 사라지니까
그 나머지를 다시 1000원으로 나눠 몫을 구하면 그 값이 구하고자하는 천원의 갯수가 된다!
/랑 %를 때에 따라서 잘 사용하도록 하자!
/ (몫 계산)
% (나머지 계산)