c语言100元换1元5元10元输出可能性有多少种
时间: 2024-03-24 08:38:34 浏览: 76
数码管动态显示_C语言_赛元_SC92F8x6Xdemocode_
5星 · 资源好评率100%
同样可以用递归或动态规划来解决这个问题。以下是使用递归的解决方案:
```c
#include <stdio.h>
int count(int n, int m)
{
if (n == 0) // 找零钱的总额为0,只有一种可能性,即不找零
return 1;
else if (n < 0 || m == 0) // 找零钱的总额小于0或找零钱的纸币种类用完了,无法找零,返回0
return 0;
else // 递归计算可能性
return count(n, m - 1) + count(n - m, m);
}
int main()
{
int n = 100; // 找零的总额
int m1 = 1, m2 = 5, m3 = 10; // 纸币的面额
int ways;
ways = count(n, m1) + count(n, m2) + count(n, m3);
printf("可能性有%d种\n", ways);
return 0;
}
```
以上代码计算了将100元换成1元、5元、10元三种纸币的所有可能性数量。输出结果为:
```
可能性有242种
```
其中的242种可能性包括了1元、5元、10元纸币的任意组合,没有对1元纸币数量做出限制。
阅读全文