第一章 模拟与计算的思想
基础入手第一刷 鸡兔同笼 重点掌握对信息的状态模拟
#include<cstdio>
#include<iostream>
using namespace std;
int n;
int main()
{
cin >> n;
int an[n];
for(int i = 0; i < n; i++)
cin >> an[i];
//易得2(鸡的脚)是4(兔子的脚)的倍数,所以总脚数一定是2的倍数
//共分以下三种可能的数量讨论
for(int i = 0; i < n; i++){
//第一种可能,不是2的倍数,输出 0 0
if(an[i] % 2 != 0)
cout << "0 0\n";
else if(an[i] % 4 != 0)
//第二种可能,是2的倍数但不是4的倍数,例如22,则至少有一只兔子,所以至少有(an[i]-2)/4+1只动物
printf("%d %d\n", (an[i]-2)/4+1, an[i]/2);
//第三种可能,是2的倍数
else
printf("%d %d\n", an[i]/4, an[i]/2);
}
return 0;
}