关于爱因斯坦阶梯问题
x=0while x <= 1000:
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5) and(x%7==0):
print ('阶梯数是:',x)
x+=1
else :
x=x+1
我这个有什么问题么? 没有,但会打印多个答案
改成这样就好了:
x=0
while x <= 1000:
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5) and(x%7==0):
print ('阶梯数是:',x)
break
else:
x=x+1 你的程序打印了 1000 以内所有的阶梯数,想要打印 1000 以内第一次出现的阶梯数应该加一个 break 跳出循环:
x=0
while x <= 1000:
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5) and(x%7==0):
print ('阶梯数是:',x)
break
else :
x=x+1
没啥毛病,不过会多次打印,改成这样效果就更好了:
x=0
print ('阶梯数是:',end='')
while x <= 1000:
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5) and(x%7==0):
print(x,end='')
x+=1
continue
x+=1
输出结果:
阶梯数是:119329539749959
我刚学了一周,还没有学到break mark1973 发表于 2020-7-11 20:57
我刚学了一周,还没有学到break
那就直接这样就好:
x=0
print ('阶梯数是:',end='')
while x <= 1000:
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5) and(x%7==0):
print(x,end=' ')
x+=1
else:
x+=1
你试着去运行下吧
Twilight6 发表于 2020-7-11 21:44
那就直接这样就好:
大神,请教下这里的 x+=1 为啥能避免重复打印啊
print(x,end=' ')
x+=1
先感谢大神指定了,小白刚起步。。 weiyideid823 发表于 2020-7-11 23:33
大神,请教下这里的 x+=1 为啥能避免重复打印啊
print(x,end=' ')
x+=1
如果不 x + 1 那么会导致你 if 条件始终成立呀,比如你循环到了 x =119然后满足 if 条件
然后打印一次print 然后直接开始下次循环,而因为你没有 x += 1 所以这次循环还是 x = 119 又满足了条件...又继续循环打印........
页:
[1]