/*
用1角,2角,5角凑出10元钱,有几种办法。
也就是0.1a+0.2b+0.3c=10,化简一下就是
a=100-2b-3c
因为a的范围是0到100,所以弄一个循环
把a的值从0尝试到100,当a等于0的时候,b的值也是0到100,
然后a b都确定的时候c就确定了。
*/
int a = 0;
int b = 0;
int c = 0;
int count = 0;;
while (a < 101)//a的值大于0小于100
{
b = 0;//当a每循环一次,b进行一次大循环,每次大循环b都是从0开始。
while (b < 101)
{
if ((100-a-2*b)%3==0&&(100-a-2*b)>0)//c的值只有是整数而且是正数的情况才可以的。
{
count++;
printf("a=%d b=%d c=%d
", a, b, (100 - a - 2*b)/3);
}
b++;
}
a++;
}
printf("%d solutions",count);

我这个其实是有种数学的感觉,没有写程序的感觉,哈哈。
update:2018.9.29
int main(void) { int a; int b; int c; int count = 0; for (a = 1; a <= 100; a++) { for (b = 1; b <=50; b++) { for (c = 1; c <=20 ; c++) { if (a + 2*b + 5*c == 100) { count++; } } } } printf("%d",count); return 1; }
感觉这种好理解一点。