目的:
最近参与助教工作,遇到一些有趣的问题,在此做些记录。
问题:
农场主问题:一位农场主有鸡和羊若干,这些动物共有 26 个头, 64 只脚。请设计一个程序,计算出鸡和羊的数量。
思路:
这是一道数学题,列个2元一次方程组也可以很容易解决了,但是采用编程会更快。
编程中用到的2个参数a、b分别代表鸡和羊,2个参数的和就是鸡和羊的总数(26 个头),鸡有2只脚、羊有4只脚,故有如下方程组:
a + b = 26;
2a+4b=64.
在此,使用一个循环和一个判断便可以求出答案。
Raptor流程图:
代码:
def Farmer():
a = 1
b = 25
while a<26:
if a*2+4*b==64:
break
a += 1
b -= 1
print("The number of chicken is %d",a)
print("The number of sheep is %d",b)
结果:
The number of chicken is %d 20
The number of sheep is %d 6
思维发散-另一个类似的问题
鸡兔同笼问题-有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?
思路-换汤不换药,此问题也可以使用上面的思路来实现。
(1)代码
def Farmer0():
x = 1
y = 34
while x<26:
if x*2+4*y==94:
break
x += 1
y -= 1
print("The number of chicken is %d",x)
print("The number of Rabbits is %d",y)
(2)结果
The number of chicken is %d 23
The number of Rabbits is %d 12
总结
在平时的学习中善于总结和对比,能发现学习中的无穷乐趣。