[有程序不太懂求详解]把一张一元的钞票,换成一分,二分,和五分的硬币,每种至少五枚,问有多少种方案

问题:三个for循环里 n1<=65,n2<=35,n3<=17是怎么来的?
#include <stdio.h>

int main() {
int n1, n2, n5;
for (n1 = 5; n1 <= 65; n1++)
for (n2 = 5; n2 <= 35; n2++)
for (n5 = 5; n5 <= 17; n5++)
if (n1 * 1+ n2 * 2 + n5 * 5 == 100)
printf("%3d * 1 + %3d * 2 + %3d * 5 = 100\n", n1, n2, n5);
return 0;
}

因为题目中,每种数额都至少要5枚,所以初始值为5
然后也就是说初始至少2分的有5枚,5分的也有5枚,加起来值35分,所以在1分的最大范围中,要减去那35,剩65
其它的同理
初始中1分的5枚,5分的5枚,加起来值30分,所以2分的最大范围值为70分,也就是有35枚2分的
初始中1分的5枚,2分的5枚,加起来值15分,所以5分的最大范围值为85分,也就是有17枚5分的

回答如果满意,望采纳
温馨提示:答案为网友推荐,仅供参考
相似回答