c语言程序设计:取1元,2元和5元纸币共10张,凑整18元,共有几种方法?(用n表示)
时间: 2024-02-13 14:07:52 浏览: 272
钱币组合方法数的问题(C++实现)
5星 · 资源好评率100%
这是一道典型的组合数学的问题,可以使用枚举和循环结构来解决。
我们可以使用三重循环,分别枚举1元、2元和5元纸币的张数,然后判断总金额是否为18元,如果是,则计数器加一。
C语言程序如下:
```c
#include <stdio.h>
int main() {
int n = 0; // 计数器
int i, j, k; // 分别表示1元、2元和5元纸币的张数
for (i = 0; i <= 10; i++) { // 枚举1元纸币的张数
for (j = 0; j <= 10 - i; j++) { // 枚举2元纸币的张数
k = 10 - i - j; // 计算5元纸币的张数
if (i + 2 * j + 5 * k == 18) { // 判断总金额是否为18元
n++; // 计数器加一
}
}
}
printf("共有%d种方法\n", n);
return 0;
}
```
输出结果为共有 26 种方法。
阅读全文