Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

数据结构--贪心算法解决找零钱问题 这里用的是人民币()

$
0
0

// 实验小结 吴新强于2013年3月20日0:19:08 桂电 2507实验室
// 贪心算法解决找零钱问题  这里用的是人民币()
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Greedy_Algorithm
{
    class Program
    {
        static void Main()
        {
            double origAmount = 0.36;  //给了100百,需要找63块的算法(假设不存在几分的)
            double toChange = origAmount * 100;
            double remainAmount = 0.0;
            int[] coins = new int[6];
            MakeChange(origAmount, remainAmount, coins);
            Console.WriteLine("提示:请输入小于100元的值,找零大于100是没意义的!");
            Console.WriteLine();
            Console.WriteLine("最优找零方法如下:" + toChange);
            Console.WriteLine();
            //origAmount = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("找零的人民币是: ");
            Console.WriteLine();
            ShowChange(coins);
        }
       

static void MakeChange(double origAmount, double remainAmount, int[] coins)
        {

            if ((origAmount % 0.5) < origAmount)
            {
                coins[8] = (int)(origAmount / 0.5);
                remainAmount = origAmount % 0.5;
                origAmount = remainAmount;
            }
            if ((origAmount % 0.2) < origAmount)
            {
                coins[7] = (int)(origAmount / 0.2);
                remainAmount = origAmount % 0.2;
                origAmount = remainAmount;
            }
            if ((origAmount % 0.1) < origAmount)
            {
                coins[6] = (int)(origAmount / 0.1);
                remainAmount = origAmount % 0.1;
                origAmount = remainAmount;
            }
            if ((origAmount % 0.05) < origAmount)
            {
                coins[5] = (int)(origAmount / 0.05);
                remainAmount = origAmount % 0.05;
                origAmount = remainAmount;
            }
            if ((origAmount % 0.02) < origAmount)
            {
                coins[4] = (int)(origAmount / 0.02);
                remainAmount = origAmount % 0.02;
                origAmount = remainAmount;
            }
            if ((origAmount % 0.01) < origAmount)
            {
                coins[3] = (int)(origAmount / 0.01);
                remainAmount = origAmount % 0.01;
            }
            if ((origAmount % 0.005) < origAmount)
            {
                coins[2] = (int)(origAmount / 0.005);
                remainAmount = origAmount % 0.005;
            }
            if ((origAmount % 0.002) < origAmount)
            {
                coins[1] = (int)(origAmount / 0.002);
                remainAmount = origAmount % 0.002;
            }
            if ((origAmount % 0.001) < origAmount)
            {
                coins[0] = (int)(origAmount / 0.001);
                remainAmount = origAmount % 0.001;
            }
        }
        static void ShowChange(int[] arr)
        {

            if (arr[8] > 0)
                Console.WriteLine("50元的人民币: " + arr[8] + "张 ");
            if (arr[7] > 0)
                Console.WriteLine("20元的人民币: " + arr[7] + "张");
            if (arr[6] > 0)
                Console.WriteLine("10元的人民币: " + arr[6] + "张");
            if (arr[5] > 0)
                Console.WriteLine("5元的人民币: " + arr[5] + "张");
           if (arr[4] > 0)
                Console.WriteLine("2元的人民币: " + arr[4] + "张");
            if (arr[3] > 0)
                Console.WriteLine("1元的人民币: " + arr[3] + "张");
            if (arr[2] > 0)
                Console.WriteLine("5角的人民币: " + arr[2] + "张");
            if (arr[1] > 0)
                Console.WriteLine("2角的人民币: " + arr[1] + "张");
            if (arr[0] > 0)
                Console.WriteLine("1角的人民币: " + arr[0] + "张");
        }
       
    }

    }
}

作者:smart819819 发表于2013-3-20 0:14:45 原文链接
阅读:36 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>