Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1004195
  • 博文数量: 150
  • 博客积分: 3017
  • 博客等级: 少校
  • 技术积分: 3829
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-19 14:40
个人简介

Now in Baidu WISE team

文章分类

全部博文(150)

文章存档

2014年(8)

2013年(31)

2012年(111)

分类: Python/Ruby

2012-05-29 17:56:12

Description

母牛们不但创建了他们自己的政府而且选择了建立自己的货币系统。他们对货币的数值感到好奇。传统地,一个货币系统是由1,5,10,20 或 25,50,100的单位面值组成的。母牛想知道用货币系统中的货币来构造一个确定的面值,有多少种不同的方法。
举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1等等其它。
写一个程序来计算有多少种方法用给定的货币系统来构造一个确定的面值。

Input

货币系统中货币的种类数目是V。 (1<= V<=25)
要构造的面值是N。 (1<= N<=10,000)
第 1 行: 二个整数,V和N
第 2 ..V+1行: 可用的货币V个整数 (每行一个)。

Output

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

Sample Input

3 10 1 2 5

Sample Output

10  

点击(此处)折叠或打开

  1. my @result;
  2. my @v = (1, 2, 5);
  3. my $tar =10;
  4. my @f;
  5. $f[0] = 1;

  6. for my $i (0..@v-1){
  7.     for($v[$i] .. $tar){
  8.         print "f$_ = $f[$_] + f".($_-$v[$i])."\n";
  9.         $f[$_]=$f[$_]+$f[$_-$v[$i]];
  10.         print "f$_ = $f[$_] \n";
  11.     }
  12. }
  13. print "$f[$tar] \n";

阅读(1892) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~