zoukankan      html  css  js  c++  java
  • UVa 147 Dollars 背包



     Dollars 

    New Zealand currency consists of $100, $50, $20, $10, and $5 notes and $2, $1, 50c, 20c, 10c and 5c coins. Write a program that will determine, for any given amount, in how many ways that amount may be made up. Changing the order of listing does not increase the count. Thus 20c may be made up in 4 ways: 1 tex2html_wrap_inline25 20c, 2 tex2html_wrap_inline2510c, 10c+2 tex2html_wrap_inline25 5c, and 4 tex2html_wrap_inline25 5c.

    Input

    Input will consist of a series of real numbers no greater than $300.00 each on a separate line. Each amount will be valid, that is will be a multiple of 5c. The file will be terminated by a line containing zero (0.00).

    Output

    Output will consist of a line for each of the amounts in the input, each line consisting of the amount of money (with two decimal places and right justified in a field of width 6), followed by the number of ways in which that amount may be made up, right justified in a field of width 17.

    Sample input

    0.20
    2.00
    0.00

    Sample output

      0.20                4
      2.00              293
    ----------------------------

    精度............为什么不能直接读double呢orz

    -----------

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    
    using namespace std;
    
    //const int coins[12]={2000,1000,400,200,100,40,20,10,4,2,1};
    const int coins[12]={1,2,4,10,20,40,100,200,400,1000,2000};
    long long f[40000];
    double money;
    int m;
    
    int main()
    {
        memset(f,0,sizeof(f));
        f[0]=1;
        for (int i=0; i<11; i++)
        {
            for (int j=0; j<=6000-coins[i]; j++)
            {
                if (f[j])
                {
                    f[j+coins[i]]+=f[j];
                }
            }
        }
        int a,b;
        //while (~scanf("%lf",&money))
        while (~scanf("%d.%d",&a,&b))
        {
            if (a==0&&b==0) break;
            m=a*20+b/5;
            money=double(a)+double(b)/100;
            printf("%6.2lf",money);
            printf("%17lld\n",f[m]);
        }
        return 0;
    }
    


     Dollars 

    New Zealand currency consists of $100, $50, $20, $10, and $5 notes and $2, $1, 50c, 20c, 10c and 5c coins. Write a program that will determine, for any given amount, in how many ways that amount may be made up. Changing the order of listing does not increase the count. Thus 20c may be made up in 4 ways: 1 tex2html_wrap_inline25 20c, 2 tex2html_wrap_inline2510c, 10c+2 tex2html_wrap_inline25 5c, and 4 tex2html_wrap_inline25 5c.

    Input

    Input will consist of a series of real numbers no greater than $300.00 each on a separate line. Each amount will be valid, that is will be a multiple of 5c. The file will be terminated by a line containing zero (0.00).

    Output

    Output will consist of a line for each of the amounts in the input, each line consisting of the amount of money (with two decimal places and right justified in a field of width 6), followed by the number of ways in which that amount may be made up, right justified in a field of width 17.

    Sample input

    0.20
    2.00
    0.00

    Sample output

      0.20                4
      2.00              293
  • 相关阅读:
    斐波那契数列的两种解法:1.递归2.字典
    逆向工程,调试Hello World !程序(更新中)
    python计算和媳妇在一起天数的小程序,最后绘制成花.
    Python 3.10 第二个 alpha 版来了!一些可以关注的新特性
    pandas:使用函数批量处理数据(map、apply、applymap)
    机器学习 --- k-means
    自定义注解!绝对是程序员装逼的利器!!
    某网站出现自己电脑的搜索记录,这是怎么回事呢?
    《Linux操作系统》——教学进度表20140218——张同光
    Java Web整合开发(27) -- Spring的Core模块
  • 原文地址:https://www.cnblogs.com/cyendra/p/3226335.html
Copyright © 2011-2022 走看看