为什么i+=2和i*2-1不一样?

img

img


感觉是一样的,或许我太笨了,但不明白为什么。奇数计算,每次加两个,和用公式不应该一样吗
第二张图左边是题目,右边是我写的程序运行结果
第一张图左边是答案,右边是我写的程序

img


这样就行了,可能for循环有毛病

第二个程序被你的输出框挡住了,看不到代码,重新贴一下。

for(i = 1; i <= n; i++) 和 for(t = 1; t <= n; t+=2) 循环里,两个循环因子 i 和 t 每次变化的步长不一样,i 每次自增 1, t 每次自增 2,假如 n = 3, i 需循环三次,t 只需循环 1 次就结束了。按题目里,如果想计算前三项的和,i 那里是满足要求的, t 那里只完成了 1 + 1 / 3 就结束了。

你把题目理解错了,题目求的是奇数分之一前n项和,你在判断中的t<=n是循环结束的条件,即当t>第n项时,sum中应该是循环了n次,表示有n项值相加,而你每次循环给t加上2,t在达到t>n时,sum相加的项永远只有一半,达不到n项。