少儿编程python教材分析(酷叮猫少儿编程讲堂)
少儿编程python教材分析(酷叮猫少儿编程讲堂)def app():# 此程序没有做输入错误检查,请自行添加[分析] 我们应该判断出 a b c 的取值范围 即输入值的范围 a --> [0 1 2] b --> [0 1 2 3 4] c --> [0 1 2 3 4 5 6] 在寻找符合条件的abc组合时,貌似一眼看不出来有什么数学公式可以马上解决,但是我们可以用计算机暴力寻找 这叫穷举法.[运行结果][代码] 使用for循环,分支,input() print()格式化 列表推导, 拆包赋值法 和几个内建函数.
相传,韩信才智过人 从不直接清点军队的人数 只要让士兵三人一排,五人一排,七人一排地变换队形,而每次他只扫一眼排位就知道总人数了.输入包含多组数据,每组数据包含3个非负整数a b c.表示每种队形的排位人数(a<3 b<5 c<7) 输出总人数的最小值(或者报告无解)
[已知] 10 <= 总人数 <= 100
[样例输入] 2 1 6 2 1 3
[样例输出] 2 1 6: 最少 41人 2 1 3: No answer
[分析] 我们应该判断出 a b c 的取值范围 即输入值的范围 a --> [0 1 2] b --> [0 1 2 3 4] c --> [0 1 2 3 4 5 6] 在寻找符合条件的abc组合时,貌似一眼看不出来有什么数学公式可以马上解决,但是我们可以用计算机暴力寻找 这叫穷举法.
[运行结果]
[代码] 使用for循环,分支,input() print()格式化 列表推导, 拆包赋值法 和几个内建函数.
# 此程序没有做输入错误检查,请自行添加
def app():
abc = input("请连续输入3个整数,以空格分隔:")
abclist = [int(a) for a in abc.split()]
a b c=abclist
people = []
for i in range(10 101):
if i%3==a and i%5==b and i%7==c:
people.append(i)
if len(people)>0:
print("Case {}: 最少 {} 人".format(abc min(people)) )
else:
print("Case {}: No answer".format(abc))
# 运行三次
for i in range(3):
app()
如果想查看a b c所有的组合情况,那么这个程序应该怎么升级呢?大家如果感兴趣请自行修改. [提示] 最简单的办法是对a b c的所有取值使用三重循环。