006讲动动手第2题,我自己写的代码怎么总是过不去?
2. 爱因斯坦的难题爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
(小甲鱼温馨提示:步子太大真的容易扯着蛋~~~)
题目:请编程求解该阶梯至少有多少阶?
下面是我写的,问题出在哪里?
i=1
whilei<100 :
j=7*i
if(j%2==1) and (j%3==2) and (j%5==4) and (j%6==5):
print ("这个阶梯一共有:"+7i+"级")
else:
i=i+1
下面是报错信息
本帖最后由 LuLD 于 2020-9-30 11:00 编辑
缩进问题,不知道你用的是什么编辑器
whilei<100 :
j=7*i
if(j%2==1) and (j%3==2) and (j%5==4) and (j%6==5):
首先 这两行应该在同一位置的
其次
print ("这个阶梯一共有:"+7i+"级")这个是有错误的,写在这儿会被认为是 字符,那就会报错,字符应该加上引号
然后就是 i 的类型是 int print里是字符与字符链接,这个 i 需要 转换类型 str(i),这样才行
根据题目来看应该是j
最后
一旦if 判断成立,将会一直打印 print里的内容,是给死循环,应该在后面加上 break 中止寻魂
这是我改好的
i=1
while i<100 :
j=7*i
if(j%2==1)and(j%3==2)and(j%5==4)and(j%6==5):
print("这个阶梯一共有:"+ str(j) +"级")
break
else:
i=i+1
非常感谢!确实如你所说,出现了两个错误,我是新手,还望多多指教 寒暄371 发表于 2020-9-30 11:13
非常感谢!确实如你所说,出现了两个错误,我是新手,还望多多指教
共同进步
页:
[1]