本文实例讲述了

Python

解决鸡兔同笼问题的方法,分享给大家供大家参考。具体分析

如下:

问题描述

一个笼子里面关了鸡和兔子

(

鸡有

2

只脚

,

兔子有

4

只脚

,

没有例外

)

。已经知道了笼

里面脚的总数

a,

问笼子里面至少有多少只动物

,

至多有多少只动物

输入数据

1

行是测试数据的组数

n,

后面跟着

n

行输入。

每组测试数据占

1

,

包括一个正整

a (a < 32768)

输出要求

n

,

每行输出对应一个输入。输出是两个正整数

,

第一个是最少的动物数

,

第二个是

多的动物数

,

两个正整数用空格分开。如果没有满足要求的情况出现

,

则输出

2

0

输入样例

2

3

20

输出样例

0 0

5 10

解题思路:

首先考虑特殊情况,当

a

为奇数时,结果都为

0

其次考虑偶数:

假设鸡

i

只,

j

只,

那么

a

2*i

4*j

我们要求

i

j

的最小和最大值

易知

i+j=(a-2j)/2

j

越大

i+j

越小

j

越小

i

j

越大

当然我们也可以简单的用权重值来思考,而不需要去想具体的计算过程

python

实现如下:

复制代码

代码如下

:n=input()

l=list()

for k in range(n):

inputNum=input()

#odd

if inputNum%2!=0:

min=max=0

else:

#even

#min

j=inputNum/4

i=inputNum%4/2

min=i+j

#max

max=inputNum/2

l+=[(min,max)]

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐