|
|
★ ★ ★ 小木虫(金币+0.5):给个红包,谢谢回帖 jjdg(金币+2): 感谢参与 2011-07-27 00:04:41 ben_ladeng: 2011-08-02 08:06:50
也是用递归,先说思路(可能有点笨)
对于n pence来说,如果只用1pence 和2 pence 两种兑换,则有 int(n/2)+1 种方法,写成这种形式
y(1,2;n)=int(n/2)+1
如果再加多些,譬如用1pence, 2 pence 和 5 pence 三种兑换,则有
y(1,2,5;n)=y(1,2;n)+y(1,2;n-5)+y(1,2;n-10)+...
一般化,y(1,2,...,n0,n1;n)=y(1,2,...,n0;n)+y(1,2,...,n0;n-n1)+y(1,2,...,n0,n-2*n1)+...
且y(1,n0;n)=int(n/n0)+1
所以代码为(就用list实现的) 不过最后还要加一才得到正确答案,因为题目中把1个200pence也算成一种方法了
[ Last edited by wangww2011 on 2011-7-26 at 21:24 ] |
|