python1 2 100_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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值