python---1 发表于 2021-5-22 20:05:44

求救,谢谢

爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。题目:请编程求解1000级以内满足条件的阶梯数?

x=1
while 7*x<=1000:
    if (x%2==1) and (x%3==2) and (x%4==3) and (x%5==4) and (x%6==5):
      print(7*x)
      x=x+1
    else:
      x=x+1

运行后结果413,833
??????????????怎么改??/

柿子饼同学 发表于 2021-5-22 20:24:28

本帖最后由 柿子饼同学 于 2021-5-22 20:33 编辑

x = 7

while x < 1000:
    if (x%2==1) and (x%3==2) and (x%4==3) and (x%5==4) and (x%6==5):
      print(x)
      x = x + 7
    else:
      x = x + 7
乘7多麻烦啊,直接每次加7就好啦{:10_256:}

Twilight6 发表于 2021-5-22 20:25:28



你 if 条件多了 x%4 ==3 而且 你 if 条件应该计算 x*7 的数,而不是 x ,或者如下代码

参考代码:

x=7
while x<=1000:
    if (x%2==1) and (x%3==2) and (x%5==4) and (x%6==5):
      print(x)
    x=x+7

肖-肖 发表于 2021-5-22 20:30:45

这样改就行了,解释在注释中

x = 7 #因为一次走7个能正好走完所以x必是7的倍数,所以定义为7先

while x < 1000:
    if (x % 2 == 1) and (x % 3 == 2) and (x % 5 == 4) and (x % 6 == 5):
      print('阶梯数是:', x)
      break
    else:
      x=7+x #设置7的倍数
   

柿子饼同学 发表于 2021-5-22 20:35:15

看看一楼~
对不起才写完{:10_266:}

python---1 发表于 2021-5-22 21:15:42

柿子饼同学 发表于 2021-5-22 20:24
乘7多麻烦啊,直接每次加7就好啦

谢谢,你的是最佳答案

python---1 发表于 2021-5-22 21:16:13

x = 7

while x < 1000:
    if (x%2==1) and (x%3==2) and (x%4==3) and (x%5==4) and (x%6==5):
      print(x)
      x = x + 7
    else:
      x = x + 7
这是最佳答案

柿子饼同学 发表于 2021-5-22 21:16:54

python---1 发表于 2021-5-22 21:16
x = 7

while x < 1000:


{:10_278:}
不是这个意思,就是想帮帮你

python---1 发表于 2021-5-22 21:17:32

肖-肖 发表于 2021-5-22 20:30
这样改就行了,解释在注释中

谢谢

python---1 发表于 2021-5-22 21:18:48

肖-肖 发表于 2021-5-22 20:30
这样改就行了,解释在注释中

谢谢

python---1 发表于 2021-5-22 21:21:06

柿子饼同学 发表于 2021-5-22 20:35
看看一楼~
对不起才写完

真的非常感谢

划句顾 发表于 2021-5-22 22:40:44

我不知道你那个要怎么改。我是另外写的代码。这个可以实现。


x = 0
x += 1
while(x<=1000):
    if(x % 7 == 0 and x % 2 == 1 and x % 3 == 2 and x % 5 == 4 and x % 6 == 5 ):
      print(x)
      x+=1
    else:
      x+=1

页: [1]
查看完整版本: 求救,谢谢