问题:《孙子算经》中记载了一个有趣的问题:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”根据上述描述可列出如下形式的二元一次方程组。
x+y=35
x+4y=94
要求:在一行中输入两个整数,整数之间用分号隔开,第一个整数表示头,第二个正数表示足
分析限定条件:首先小兔子的个数和小鸡的个数不能是负数,另外头不可能大于脚的个数,还有脚的个数不能是奇数,有一个容易忽略的问题是头的个数和脚的个数不能只有一个是零。
通过上面的方程组我们可以得到计算的式子(不唯一):
鸡:小鸡数=(4*头总数-脚数)/2 chickens=(4*heads-feet)/2
兔子:兔子数=头总数-小鸡数 rabbits=heads-chickens
代码主要用到 if() 语句 和逻辑运算符
源代码:
#include#include using namespace std; int main() { long long int heads,feet,mm,nn;//头,脚,小鸡,小兔子 cin>>heads>>feet;//从键盘输入头的总数和脚的总数 nn=(4*heads-feet)/2; mm=heads-nn; if((heads<=0&&feet!=0)||(heads!=0&&feet<=0)||heads>feet||heads<(feet/4)||feet%2==1) { cout<<"No solution!"; } else { cout<<"chickens = "<



