|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 三万行者 于 2016-10-20 20:14 编辑
各位大拿,小拿。请驻步一小下,恳请赐教!
0. 题目:请写一个程序打印出0~100所有的奇数
2. 题目:爱因斯坦的难题:“爱因斯坦层出国这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶:若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
我对问题0.的回答:
i = 99
a = i/2
while isinstance(a,int) == 0 and i > 0:
print(i)
i = i-1
a = i/2
我对题目2.的回答:
i=1
while (i // 2 == 1)and(i // 3 == 2)and(i // 5 == 4)and(i // 6 == 5)and(i // 7 == 0):
i = i+1
print(i)
我的回答很屎毋庸置疑。 我疑惑的地方在于:我对0.的回答运行结果是100到1全部都打了出来。我觉得应该会出来所有奇数吧 我对2.的回答运行结果虽然不报错,但是屏幕上没有结果。 我很是疑惑为什么会有这样的运行结果呢?
0.和2.题的参考答案:
0.:
i = 0
while i <= 100:
if i % 2 != 0:
print(i, end=' ')
i += 1
else:
i += 1
2.:
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('在程序限定的范围内找不到答案!')
你第一题,其实你已经设置了上限了~分析如下:你初始值设置i = 99 。在while判断中,你要求i > 0,在while内部,i = i - 1。每做一次判断,你的i就减1。99次后,i = 0。再进while时,判断i不符合要求(因为你设置的i > 0才能进while)
但你分析你自己做的第二个台阶问题,你就根本没有设置上限....进入了无限循环~
|
|