python循环求和1+(1+2)+(1+2+3)…_python循环题目求1-2+3-4+5 ... 99的所有数的和汗血宝马...

怎么求呢??想不出

可以这样计算:

>>> num = 0

>>> for i in range(100):

...     if i % 2 == 0:

...         num = num - i

...     else:

...         num = num + i

...

>>> num

50

另外,由于是前1个数字减去后1个数字,因此2个数值之间的和为-1,而99/2=49.5,因此,共有49对,其结果为-49,再与99相加可以得到99-49=50

粗略的看了一下,前面几个答案都使用了

for

循环,个人觉得能少用就少用吧,尽量把时间变成O1。

假设参数为n,就是最大的那个数,并且都大于0,这里为99

n

result

1

1

2

-1

3

1

4

-2

5

3

6

-3

当n为奇数时,结果为正,result = ((n – 1) / 2) * (-1) + n

当n为偶数时,结果为负,也就是result = (n / 2) * (-1)

所以,答案就出来了。。

def compute(n):

if n % 2 is 1:

return

你可能感兴趣的:(python循环求和1+(1+2)+(1+2+3)…_python循环题目求1-2+3-4+5 ... 99的所有数的和汗血宝马...)