若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

1433: 2.3.4 Money Systems 货币系统

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,248

题目描述

母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。
[In their own rebellious way],,他们对货币的数值感到好奇。
传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。
母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。
举例来说, 使用一个货币系统 {1,2,5,10,…}产生 18单位面值的一些可能的方法是:18×1, 9×2, 8×2+2×1, 3×5+2+1,等等其它。
写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值。
保证总数将会适合long long (C/C++) 和 Int64 (Free Pascal)。

输入

货币系统中货币的种类数目是 V 。(1<= V<=25)
要构造的数量钱是 N 。(1<= N<=10,000)

第 1 行: 二整数, V 和 N
第 2 ..V+1行: 可用的货币 V 个整数 (每行一个 每行没有其它的数)。

输出

单独的一行包含那个可能的构造的方案数。

样例输入

3 10
1 2 5

样例输出

10

参考代码

#include<stdio.h>
long long n,a[10001],t,i,j,b[26];
int main() 
{
    while(scanf("%lld%lld",&t,&n)!=EOF) 
    {
        for (i=0;i<t;i++)
                    scanf("%lld",&b[i]);
        for (i=1;i<=n;i++)
                    a[i]=0;
        a[0]=1;
        for (i=0;i<t;i++)
                    for (j=b[i];j<=n;j++)
                        a[j]=a[j]+a[j-b[i]];
        printf("%lldn",a[n]);
    }
    return 0;
}

解析

暂无

hustoj

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

原站点 Dreams孤独患者 Skip
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist