⾃学Python:求解马克思的数学问题
马克思⼿稿中有⼀道趣味数学问题:有30个⼈,其中有男⼈、⼥⼈和⼩孩,他们在同⼀家饭馆吃饭,总共花了50先令。已知每个男⼈吃饭需要花3先令,每个⼥⼈吃饭需要花2先令,每个⼩孩吃饭需要花1先令,请编程求出男⼈、⼥⼈和⼩孩各有⼏⼈。
问题可以⽤下⾯的⽅程式代替,男⼈X,⼥⼈Y,⼩孩Z。
X+Y+Z=30
3X+2Y+Z=50no input file specified
下⾯直接上代码:
>>>>####
if __name__=="__main__":
# 变量x、y和z分别代表男⼈、⼥⼈和⼩孩
print("    男⼈  ⼥⼈  ⼩孩 ")
十进制数 52number = 0    # 可能的值的组数
# 将变量x的可能取值依次代⼊⽅程组
for x in range(0, 10+1):
y = 20 - 2*x    # ⽅程③,当x⼀定时,可确定y值
# ⽅程①,当x、y⼀定时,可确定z值
z = 30 -x-y
c语言视频教程软件# 代⼊⽅程②检验,当前获得的x、y、z是否为不定⽅程组的⼀组解
if 3*x + 2*y + z == 50:
number += 1
print("%2d:%4d%5d%6d" % (number, x,y, z))
>>>>####
执⾏结果如下:
男⼈ ⼥⼈ ⼩孩
1:  0  20    10
2:  1  18    11
3:  2  16    12
儿童python入门教程
4:  3  14    13
5:  4  12    14
6:  5  10    15
7:  6    8    16
8:  7    6    17
9:  8    4    18
10:  9    2    19
11:  10    0    20
共有11种结果,你猜对了⼏种?
当然你也可以⽤下⾯这种FOR循环的⽅法:
watchmygfriends
kettlerfor x in range(30):
for y in range(30):
for z in range(30):
if x+y+z==30 and 3*x+2*y+z==50:                print(x,y,z)
执⾏结果⼀样。
________________END______________

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论