본문 바로가기
프로그램/C# 1000제

C# 23제] C# 프로그램 입문 CHAPTER 3. p150 3.9 (10) 거스름돈 최소 개수를 구하는 프로그램을 작성하시오.

by 건티 2021. 8. 31.
728x90

출처 : 반크 카드뉴스

 

문제]

1원, 5원, 10원, 50원, 100원, 500원 짜리 동전을 충분히 갖고 있는 상점이 있다. 고객이 1000원 미만의 물건을 사고 1000원 짜리 돈을 냈을 때 거스름돈을 동전의 개수가 최소가 되도록 계산하는 C# 프로그램을 작성하시오.

 

참고풀이]

using System;
using System.Collections.Generic;
using System.Text;

namespace Chapter3
{
    class P150_3_9_10
    {
        public static void Main(string[] args)
        {
            int[] don = { 500, 100, 50, 10, 5, 1 };//동전금액
            int[] change = new int[6];//동전금액의 개수를 넣을 변수
            int pay = 1000;//지불한 금액변수
            int price;//제품가격변수
            int sum;//동전개수의 합
            int i;//반복변수

            while(true)
            {
                Console.Write("물건의 가격을 입력하시오 : ");
                price = Int32.Parse(Console.ReadLine());
                if (price >= 1 && price < 1000) break;
                Console.WriteLine("물건의 가격은 1000을 넘을 수 없습니다.");
                return;
            }

            //거스름돈의 최소 동전 수를 구한다.
            pay -= price;
            sum = 0;
            for (i=0;i<6;i++)
            {
                change[i] = pay / don[i];
                sum += change[i];
                pay %= don[i];
                if (pay == 0) break;
            }

            //결과출력
            for (i = 0; i < 6; i++)
                Console.WriteLine("{0,23}원 :  {1}개", don[i], change[i]);
            Console.WriteLine("거스름돈의 최저 동전 개수 : {0}개", sum);
        }
    }
}

 

참고풀이 결과]

 

 

 

대한민국의 아름다운 영토, 독도의 봄

 

반응형

댓글