题目
已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目如果无解,则输出 NO ANSWER
样例输入;
14 32
样例输出;
12 2
样例输入;
10 16
样例输出;
NO ANSWER
分析
设鸡有a只兔有b只,则a+b=n,2a+4b=m,联立解得a=(4n-m)/2,b=n-a。因为a和b均为整数,且a和b是非负的,若违背这两个原则则"不算数"
代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a, b, m, n;//鸡a只,兔b只,共m只,有n个腿
scanf("%d%d", & m, &n);
//a+b=m
//2a+4b+n联立求解
a = (4 * m - n) / 2;
b = m - a;
if (a < 0 || b < 0 || m % 2 == 1)//如果满足鸡或兔为负数则不成立;或者值为小数
printf("NO ANSUWER");
else
printf("%d %d", a, b);
return 0;
}
拓展
上面的程序用到了证语句,其一般格式是:
if(条件)
语句 1;
else
语句 2;
注意语句1和语句2后面的分号,以及if后面的括号。“条件”是一个表达式,当该表达式的值为“真”时执行语句1,否则执行语句2。另外,“else 语句2”是可以省略的。