中易网

C语言编程:将一笔钱(大于8分,小于1元,精确到分)换算成1分,2分和5分的硬币组合。

答案:2  悬赏:10  
解决时间 2021-01-16 22:13
  • 提问者网友:孤山下
  • 2021-01-16 05:57
C语言编程:将一笔钱(大于8分,小于1元,精确到分)换算成1分,2分和5分的硬币组合。
最佳答案
  • 二级知识专家网友:怙棘
  • 2021-01-16 06:17
源代码:
#include
int main()
{
int count=0,money,i,j,m;
printf("Input money:");
scanf("%d",&money);
for(i=1;i {
for(j=1;j {
for(m=1;m {
if((i+j*2+m*5)==money)
{
printf("%5d%5d%5d\n",i,j,m);
count++;
}
}
}
}
printf("count=%d\n",count);
return 0;
}
算法步骤多但容易理解,因为加起来不等于money不管就行。
全部回答
  • 1楼网友:雾月
  • 2021-01-16 07:35
这个题数据比较大,需要动态规划来求解。。首先题目要求每种硬币至少有一枚,那么先取出1分,2分和5分各一枚,这样刚好是8分钱。题目描述说了这比钱大于8分,小于1元,所以没有影响,剩下有多少种方式就动态规划(DP)求解吧。不知道DP你会不会,不行的话我等下给你一下代码参考好了……先举样例说明一下,处理N=10,10-8=2,也就是付款=2分的方式有多少,那么明显就是2*1或者1*2两种
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息