m0_70366965 2022-06-13 16:36 采纳率: 100%
浏览 509
已结题

某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。问:有几种换法?

问题遇到的现象和发生背景

某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。问:有几种换法?

问题相关代码,请勿粘贴截图

#include <stdio.h>
int main()
{
int a, b, c, d, times;
a = 1;
b = 1;
c = 1;
d = 1;
times = 0;
while (a <=40)
{
while (b <=40)
{
while (c <=40)
{
while (d <= 40)
{
if((a + b + c + d == 40) && (a + 2b + 5c + 10*d == 100))
{
times++;
}
d++;
}
c++;
}
b++;
}
a++;
}
printf("%d", times);

}

运行结果及报错内容

0

我的解答思路和尝试过的方法

不知道哪里错了,求解答

我想要达到的结果
  • 写回答

2条回答 默认 最新

  • Hann Yang 优质创作者: 编程框架技术领域 2022-06-13 17:02
    关注
    #include<stdio.h>
    
    int main()
    {
        int a,b,c,d,times=0;
        for(a=1;a<100;a++)
            for(b=1;b<100/2;b++)
                for(c=1;c<100/5;c++)
                    for(d=1;d<100/10;d++)
                        if (a+b+c+d==40 && a+2*b+5*c+10*d == 100)
                            times++;
        printf("%d", times);
        
        return 0;
    }
    
    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月25日
  • 专家已采纳回答 6月17日
  • 创建了问题 6月13日