c语言贪心算法找零代码
时间: 2023-11-19 12:55:01 浏览: 258
这段代码是一个使用贪心算法来找零的C语言程序。贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,从而希望导致结果是全局最好或最优的算法。在这个程序中,我们先将所有的硬币都用7元硬币来代替,然后判断是否大于7元,如果小于7元则继续,如果大于7元则将之前的值舍去,重新分配硬币。最后输出i,m,n的数值,即a,b,c的个数。这个程序的时间复杂度为O(n^3)。
完整代码如下:
```
#include <stdio.h>
int main() {
int a = 10, b = 5, c = 2; // 硬币面值
int money = 69; // 需要找的钱数
int i, m, n, sum; // i、m、n分别对应c、b、a的个数
for (i = 0; i < 10; i++) {
for (m = 0; m < 10; m++) {
for (n = 0; n < 10; n++) {
sum = a * n + b * m + c * i; // 计算当前硬币组合的总面值
if (sum == money) break; // 如果找到了合适的硬币组合,则退出循环
}
if (sum == money) break;
}
if (sum == money) break;
else sum = 0; // 如果当前硬币组合不合适,则将sum清零,重新分配硬币
}
printf("%d %d %d %d", i, m, n, sum); // 输出硬币组合的个数
return 0;
}
```
阅读全文