プログラム問題集

プログラム問題集

多分プログラミングの問題集でも書いていく

硬貨何枚?

問題

 入力した金額に対して必要な硬貨の枚数を求めましょう。


入力
・0以上の整数値
・整数値以外、マイナスの値などが入力された場合は再入力を求める


出力
・硬貨の枚数
・0枚の硬貨は表示しない

例1

金額を入力してください[円]
sss
金額を入力してください[円]
-22
金額を入力してください[円]
88
50 円硬貨 1枚
10 円硬貨 3枚
5 円硬貨 1枚
1 円硬貨 3枚

例2

金額を入力してください[円]
537
500 円硬貨 1枚
10 円硬貨 3枚
5 円硬貨 1枚
1 円硬貨 2枚
解答例

C#

using System;

namespace Coins
{
    class Program
    {
        static void Main(string[] args)
        {
            //硬貨の金額を配列にする
            int[] coin = { 500, 100, 50, 10, 5, 1 };
            int money;

            bool loop = true;

            //お金入力のループ
            do
            {
                Console.WriteLine("金額を入力してください[円]");
                String str = Console.ReadLine();

                loop = !int.TryParse(str, out money);
                if (money < 0) loop = true;

            } while (loop);

            //硬貨換算
            for (int i = 0; i < coin.Length; i++)
            {
                int n = money / coin[i];
                if (n > 0)
                {
                    money = money - coin[i] * n;
                    Console.WriteLine("{0} 円硬貨 {1}枚", coin[i], n);
                }
            }
        }
    }
}