50元兑换纸币方案枚举算法
我们可以使用三层循环枚举每种纸币的数量,然后判断总面值是否为50元,总张数是否为25张,每种纸币数量是否不少于1张。具体实现如下:
int count = 0; // 兑换方案数
for (int i = 1; i <= 23; i++) { // 1元纸币数量
for (int j = 1; j <= 13; j++) { // 2元纸币数量
for (int k = 1; k <= 7; k++) { // 5元纸币数量
if (i + j + k == 25 && i + 2 * j + 5 * k == 50) { // 满足条件
count++;
}
}
}
}
cout << count << endl; // 输出兑换方案数
其中,三层循环分别枚举1元、2元、5元纸币的数量,循环变量的范围是根据题目条件推算出来的。在循环体内,我们判断当前纸币数量是否满足条件,如果满足,则兑换方案数加一。最后输出兑换方案数即可。
原文地址: https://www.cveoy.top/t/topic/mucS 著作权归作者所有。请勿转载和采集!