자세히보기

IT/Programming

[Java] 거스름돈 분리 계산

COMDORI 2020. 3. 4. 04:50
728x90
반응형

2020/03/04 - [IT/Practice] - [Java] 간단한 출력문

2020/03/04 - [IT/Practice] - [Java] 계산기

2020/03/04 - [IT/Practice] - [Java] 3 거스름돈 분리 계산

2020/03/04 - [IT/Practice] - [Java] 4 성적 출력 하기

2020/03/04 - [IT/Practice] - [Java] 짝수, 홀수, 제로 숫자 세기 프로그램

 

 

▶조건

사용자가 0~100,000원 사이의 돈을 입력

 만약 45789 을 입력하였다면 각 지폐와 동전이 최소 몇 개가 있는지 출력.

 최소 동전단위는 10 원, 그 외 나머지는 남은 돈에 출력 바람 .

0~100,000의 입력이 아닐 경우 아래와 같이 출력

☞소스코드

package lab1;

import java.util.Scanner;

public class lab1_3 {

	public static void main(String[] args) {
		System.out.println("======================");
		System.out.println("학번: 201500000");
		System.out.println("이름: 컴돌이");
		System.out.println("======================");

		Scanner scan = new Scanner(System.in);
		int Num1 = 0; //돈 입력
		int[] coin = { 50000, 10000, 5000, 1000, 500, 100, 50, 10 }; //화폐 나눌거 배열
		int leftcoin = 9; //10원 이하 Won

		System.out.println("돈을 입력해주세요 (0~100,000)");
		Num1 = scan.nextInt();

		if(Num1 >100000 || Num1<0){
			System.out.println("0~100,000원 사이로 입력해주세여.초과값입니다.");
				}
		
		else{
		for (int i = 0; i < coin.length; i++) {
			if ((Num1 / coin[i]) > 0) { //입력한 숫자를 코인배열에서 나눕니다.
				System.out.println(coin[i] + "원: " + Num1 / coin[i]); 
				Num1 %= coin[i]; 
				if (leftcoin >= Num1) {  //남은돈 계산 식
					leftcoin = Num1; //남은돈 계산식
				}
				} 
			} 
		System.out.print("남은돈: ");
			System.out.println(leftcoin);
		} 
	}
} 

Tip: 일일이 나눠도 되지만, 배열을 사용하여 각각의 단위를 저장함.(메모리 절약?)

◈ 소스코드를 보시고 고칠 부분이나 더 좋은 아이디어가 있으면 코멘트 달아주세요! 

이상 문제 3번 입니다.

컴돌이블로그

#자바

728x90
반응형