python计算1加到n的求和

方法一:for循环实现

def sum_1_to_n(n):
    sum = 0
    for i in range(1, n+1):
        sum += i
    return sum

print(sum_1_to_n(100))  # 输出5050
print(sum_1_to_n(1000))  # 输出500500

方法二:递归实现

def sum_1_to_n(n):
    if n == 1:
        return 1
    else:
        return n + sum_1_to_n(n-1)

print(sum_1_to_n(100))  # 输出5050
print(sum_1_to_n(1000))  # 输出500500

方法三:数学公式实现

def sum_1_to_n(n):
    return int((n+1)*n/2)

print(sum_1_to_n(100))  # 输出5050
print(sum_1_to_n(1000))  # 输出500500

注意事项:
- 方法一和方法二为普通实现,复杂度为O(n),当n较大时可能会出现效率问题。
- 方法三使用数学公式,复杂度为O(1),效率高。但是可能存在精度问题,所以需要使用int进行类型转换。