C++ 1元,2元,3元硬币兑换

来源:百度知道 编辑:UC知道 时间:2024/09/22 14:20:16
问题:把N元钱兑换成1元,2元,3元(只要凑满N元就行)。问有多少种换法。
1----不能用DP
2----如果用生成函数的话(我对这个解8次方程感到很恼火),如果大话 可否说的详细点
3----最好考虑不用生成函数的方法。
哪位大牛有好的算法指点一下小弟吧
我想声明一下:看我问题的朋友,“回答”一个问题不过只有2分的得分。无聊的写一些只有小学一年级以下的同学才能看明白的东东真的很无聊。 我生成函数学的不是很好,提这个问是自已想好好几天实在想不出什么好方法才来向大大牛们请教的,主要是想把这个问题弄懂。如果你无意指教,看过就行了。不用做一些无聊的事

再补充一下哈,三重循环还没有DP效率好,也暂不考虑哈。先谢谢回答的大牛

用穷尽法吧?这个算起来比较简单!下面是我的算法

#include<stdio.h>
void main()
{
int i,j,k,s=0;
for(i=0;i<=10;i++)//10可以换成任意数
for(j=0;j<=10/2;j=j+1)
for(k=0;k<=10/3;k=k+1)
if(i+2*j+3*k==10)
{printf("\n%3d张1元 %3d张2元 %3d张3元\n",i,j,k);
s++;
}
printf("总的方案是:\n%3d种\n",s);
}

qusi
budong
zijixiang
sb
nijinianji
niwuliao!

三重循环,最简单的

2

这位,你瞎说的吧。