题目

鸡和兔总数量为 n,总腿数为 m。输入 n 和 m,依次输出鸡的数目和兔的数目。若无解,那么输出 No answer。

解答

这里开始上难度,但是鸡兔同笼是小学学的。。。

定义变量 j、t,分别表示鸡的数量、兔子的数量。

先来写出两个关系式:

  • j + t = n
  • 2j + 4t = m

代入消元

  • t = (m-2n)/2

所以

  • j = n – t

并且,我们也要考虑,输入的 m、n 必须为正整数。

那么,我们可以写出以下代码:

#include <iostream>
using namespace std;

int main()
{
    /*
    n:总数量
    m:总腿数
    j:鸡数量
    t:兔数量
    */
    int m,n,j,t;
    cin >> n >> m;

    t = (m - 2 * n) / 2;
    j = n - t;

    if (m % 2 != 0 || m < 2 * n || m > 4 * n)
    {
        cout << "No answer";
    }
    else
    {
        cout << j << " " << t;
    }

    return 0;
}

整体难度也不高。

祝各位读者早日成为神牛牪犇!