为了账号安全,请及时绑定邮箱和手机立即绑定

5-5 Python之 while循环

任务是利用while循环计算100以内奇数之和。
各位前辈请指教我写的答案和标准答案有何不同,感谢!
标准答案:
sum=0
x=1
while x<100:
sum=sum+x
x=x+2
print sum

我的答案:
sum=0
x=1
while x<100:
x=x+2
sum=(1+100)*100/2
print sum

不明白的点:
1.既然是奇数之和,不应该用等差数列求和公式吗? 为什么答案写的是sum=sum+x
2.要求奇数,当x=1, 则x=x+1 is Ture,
当x=2,则x=x+2 依然是偶数,如何让程序判定新x一直都是奇数呢?
感谢!!!

正在回答

3 回答

1、如果使用等差数列求和就不需要使用循环了,直接一个数学公式就可以求了,答案中的sum,是循环到本次前全部的和,第一次循环sum = sum+x就是sum = 0+1 ,x=x+2 就是 x=1+2,然后第一次循环完了就会执行第二次,知道当x<100不成立。

2、判断是否为奇数可以使用除以2求余等于1还是0来判断,但这里不需要,这里只用你最开始设置x=1 每次循环让x=x+2便可以控制它每次都是奇数。

循环相当于就是直接计算1+3+5+这样一直加到最后一个,而不是运用了求和公式。

1 回复 有任何疑惑可以回复我~

1:可以使用等差数列求和公式,人在计算时更倾向于使用求和公式,但是计算机是运行速度很快的机器,更擅长于做机械性的重复性的工作。sum=sum+x就是硬算,一个一个的去加起来。

2:程序中,x=1,x=x+2,保证了x都是奇数。

另外可以用if判断语句

if not x%2:

    sum = sum + x

1 回复 有任何疑惑可以回复我~

等差数列你不应该只有五十项吗

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

5-5 Python之 while循环

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信