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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM