python_求1-2+3-4+......-100的值

时间:2023-03-08 20:14:49
python_求1-2+3-4+......-100的值

求1-2+3-4+5……-100 = ?

逻辑整理:

-- 本质上可以转换一下,1+3+5+……+99 -(2+4+……+100)

      加减部分间隔都为2,先求1+3+5+……+99的值,

        再求2+4+……+100的值,减去结果就出来了

-- 还可以如此转换 1*[(-1)**(1+1)] +2*[(-1)**(1+2)]+……+100[(-1)**(1+100)]

通过-1来进行+ - 符号的转变

    -- 最简单的方法是分开,1 – 2 = -1 ,3 – 4 = -1 ,

    依次下去,其实答案已经出来了 结果等于-50

  程序化:

  第一种方法

#!/usr/bin/python3

__author__ = 'beimenchuixue'
__blog__ = 'http://www.cnblogs.com/2bjiujiu/' def sum_go(sum_to):
sum_count_1 = 1 # 计算
sum_1 = 0 # 初始和值 sum_count_2 = 2
sum_2 = 0
while True:
if sum_count_1 == sum_to + 1: # 初始值以1开始
break
sum_1 += sum_count_1 # 前者计算累计
sum_count_1 += 2 # 前者和累计 sum_2 += sum_count_2
sum_count_2 += 2 return sum_1 - sum_2 # 结果两者相减 if __name__ == '__main__':
result = sum_go(sum_to=100)
print(result)

  第二种方法:

#!/usr/bin/python3

__author__ = 'beimenchuixue'
__blog__ = 'http://www.cnblogs.com/2bjiujiu/' def sum_go(sum_to):
sum_all = 0
for i in range(1, sum_to+1):
sum_all += i * (-1) ** (1 + i)
return sum_all if __name__ == '__main__':
result = sum_go(sum_to=100)
print(result)