已知鸡和兔的总数量为n,总腿数为m,输入n和m,依次输出鸡的数目和兔的数目。如果无解,则输出 No answer。
假设鸡有a只,兔有b只,则 a+b=你n,2a+4b=m;联立解得 a=(4n-m)/2 b=n-a;
在什么情况下此解不作数呢,a和b都应该是正整数。
//已知鸡和兔的总数量为n,总腿数为m。输入 n和m,依次输出鸡的数目和兔的数目。
#include<stdio.h>
int main() {
int n, m;
scanf_s("%d%d", &n, & m);
int a, b;
a = (4*n-m)/2;
b = n - a;
if (a <= 0 || b <= 0 || m % 2 == 1)
printf("No Answer");
else
printf("%d %d\n", a, b);
return 0;
}
上面的程序用到了if语句,其一般格式是:
if(条件)
语句1;
else
语句2;
注意语句1和2后面的分号,以及if后面的括号。条件是一个表达式,当该表达式的值为true时,执行语句1;否则执行语句2;另外 else语句是可以忽略的。语句1和语句2前面的空行不是必须的,只是为了程序更加美观,但是强烈推荐使用。
一些逻辑运算符
&& | 与 | 将两个表达式连接成一个。两个表达式必须都为 true,整个表达式才为 true |
|| | 或 | 将两个表达式连接成一个。必须有一个或两个表达式为 true,才能使整个表达式为 true。只要其中有一个为 true,那么另外一个就变得无关紧要 |
! | 非 | 反转一个表达式的“真相”。它使一个表达式从 true 变成了 false,或者从 false 变成了 true |