#include<stdio.h>
int main()
{
int a, b, c, d;
for (a = 1; a <= 861 / 2; a++)
{
for (b = 1; b <= (861 - 2 * a) / 3; b++)
{
for (c = 1; c <= (861 - 2 * a - 3 * b) / 5; c++)
{
d = 861 - 2 * a - 3*b - 5 * c;
if (5 * a + 4 * b + 3 * c + 2 * d == 1496 && 4 * a + 2 * b + 6 * c + 3 * d == 1175)
{
if (3*a+b+7*c+5*d==958)
printf("%d", b);
}
}
}
}
return 0;
}
思路:
题目有四个未知量:羊犬鸡兔,因此分别定义a,b,c,d,依题意的一个条件可用for循环将a,b,c,d表示出来,上述代码是根据最后一个条件写的
a,b,c,d,都表示出后,if语句对各条件进行判定,代码是12--14行,最后输出犬b的值。
讨论:
1.如果题目需要将羊犬鸡兔各值求出,则只需将输出函数那一行改为:printf("%d,%d,%d,%d",a,b,c,d);
2.上述代码是根据最后一个条件来进行的,当然另外3个条件同样可以解决问题。
注意事项:
1.注意代码中的多次使用for循环使用的花括号{},比如少了花括号,如下图所示将会出现计算不出结果的问题,因此在使用循环嵌套的时候,必须将花括号正确使用!