您的位置:首页 > 其它

钱币兑换问题 (dp 4000 )HDU 1284

2017-04-26 22:02 183 查看
题目大意:把N分兑换为1 2 3分硬币总共有多少种方法
思路:dp问题。子问题分解成如果只有一分和又一分和2分
只有1分:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

有1和2:1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10

1, 2, 3 :1 2 3 4 5 7 8 10 12 14 16 19 21 24 27 30 33 37 40

最后按着这个去写即可。

如果钱还有4,如法炮制即可

#include<stdio.h>
int z[32777];
int main(void)
{
int i;
int j;
z[0]=1;
for(i=1;i<=3;i++){
for(j=1;j<32777;j++){
z[j]+=z[j-i];
}
}
int num;
while(scanf("%d",&num)!=EOF){
printf("%d\n",z[num]);
}
return 0;
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dp