오늘공부한것

[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원으로  나눠 몫을 구하면 그 값이 구하고자하는 천원의 갯수가 된다!

/랑 %를 때에 따라서 잘 사용하도록 하자!


/ (몫 계산)

% (나머지 계산)