设万维读者为首页 广告服务 联系我们 关于万维
简体 繁体 手机版
分类广告
版主:
万维读者网 > 灵机一动 > 帖子
五年级硬币问题试解。
送交者: 粱远声 2012年05月22日22:23:34 于 [灵机一动] 发送悄悄话
硬币有1分, 5分, 10分, 25分四种.
问有多少种不同的方法可以凑成 2 元.
例如:
方法一: 200个1分
方法二: 195个1分, 1个5分.
...



在这些组合中,1分的个数只能以5的倍数出现。把每5分看成一点,2元共有
40点。

25分的硬币是5点。2元中,25分硬币不同的个数为0,1,2,3,4,5,6,7,
8。对于加进所有不同个数的25分硬币,所剩的点数为(排成列)

40
35
30
25
20
15
10
5
0

对所剩的不同的点数,加进不同个数的10分硬币(2点),所剩的点数为(排成行)

40,38,36,... 2, 0
35, 33, 31, ... 3, 1
30, ......
25, ......
20, ......
15, ......
10, 8, 6, 4, 2, 0
5, 3, 1
0

上述所剩的点数是为5分和1分的硬币准备的。如果所剩的点数是k,5分(1点)的
不同组合是0点,1点,2点,... k点 余下的点数由1分硬币补齐(5个补1点)。
这样,对所剩的点数k,就有k+1个不同的组合。

也就是说,上述所剩的点数阵列中的每个数加1,再把所有数加起来就是问题的
答案。

算法(以下除法均为整数除法):

n = 40/5 + 1
s = 0

for ( i = 0; i < n; i++ )
{
    m = i * 5
    r = m % 2
    s = s + (m + 2 + r)(m/2+1)/2
}

s 就是凑成2元不同组合的个数。

0%(0)
0%(0)
标 题 (必选项):
内 容 (选填项):
实用资讯
回国机票$360起 | 商务舱省$200 | 全球最佳航空公司出炉:海航获五星
海外华人福利!在线看陈建斌《三叉戟》热血归回 豪情筑梦 高清免费看 无地区限制
一周点击热帖 更多>>
一周回复热帖
历史上的今天:回复热帖
2011: 对01讲的内个金字塔和正4面题的故事将
2010: 英阿马岛之战的军事亮点
2007: 迭代问题修正版