人zai旅途 发表于 2016-10-21 10:55:18

关于求台阶数目的问题

答案:
x = 7
i = 1
flag = 0

while i <= 100:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
      flag = 1
    else:
      x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1

if flag == 1:
print('阶梯数是:', x)
else:
print('在程序限定的范围内找不到答案!')

问题:
0、flag = 0,是为了提前定义变量吗?,否则后边的循环体调用的时候,会报错是吗?我发现好多地方都是这样的
1、while i <= 100,这里为什么限定是100?
2、整个代码的逻辑没看明白(这个可能牵扯到数学了~_~),我用
if (x%2==1)and(x%3==2)and(x%5==4)and(x%6==5)and(x%7==0):
      print(x)
好像也能算出来,而且这个题目答案,第一个满足条件的是119,后边还有很多满足条件的整数

人zai旅途 发表于 2016-10-24 23:09:04

人工顶起,希望有鱼油路过解惑

小古比鱼 发表于 2020-12-14 12:25:30

0、flag的作用是用来指示程序的限定范围内是否找到了答案,以便代码第12~15行进行判断。
1、这里是程序的限定范围,即7≤x≤7*(100+1)=707。可以通过修改i的值来修改限定范围。
2、这个代码本身就有点冗余,你的方法更加简便。如果想求得后边同样满足条件的数,可使用列表来实现。
页: [1]
查看完整版本: 关于求台阶数目的问题