C语言小明做家务可能获得1元钱或者2元钱,若要攒到n元钱,有多少种可能的组合
时间: 2024-05-07 21:18:38 浏览: 19
这是一个典型的动态规划问题。可以用一个一维数组来保存每个目标金额的组合数。假设数组为 `dp`,目标金额为 `n`,则有以下递推式:
```
dp[i] = dp[i-1] + dp[i-2]
```
其中,`dp[i]` 表示组合成金额为 `i` 的方案数。初始条件为 `dp[0]=1`,因为不选也是一种方案,而 `dp[1]=1`,因为只有一种方案(选1元钱)。
C语言代码如下:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入目标金额:");
scanf("%d", &n);
int dp[n+1];
dp[0] = 1;
dp[1] = 1;
for (int i=2; i<=n; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
printf("组合数为:%d", dp[n]);
return 0;
}
```
例如,当目标金额为 `5` 时,输出为 `组合数为:8`,即有8种不同的组合方式。
相关问题
输入n元钱兑换成1分,2分,5分的硬币(每种都要)用c语言求有多少种兑换方法
这是一个纯技术问题,我可以回答。这个问题可以用动态规划算法来解决。您可以参考以下代码:
```
#include <stdio.h>
int main(void) {
int n, i, j, k, count = 0;
scanf("%d", &n);
for (i = 0; i <= n / 100; i++) {
for (j = 0; j <= (n - i * 100) / 50; j++) {
for (k = 0; k <= (n - i * 100 - j * 50) / 10; k++) {
if ((n - i * 100 - j * 50 - k * 10) % 5 == 0) {
count++;
}
}
}
}
printf("%d", count);
return 0;
}
```
这段代码可以计算出将 n 元钱兑换成 1 分、2 分、5 分的硬币所需的兑换方法数量。
c语言100元换1元5元10元输出可能性有多少种
同样可以用递归或动态规划来解决这个问题。以下是使用递归的解决方案:
```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元纸币数量做出限制。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)