/* 用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; }
感觉这种好理解一点。