python《剑指offer》-求1+2+3+...+n

题目描述

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

选择语言:

Python

解题思路:

1、使用递归方式求解。

1+2+3+...+n的递推式为:f(n)=n+f(n-1)

# -*- coding:utf-8 -*-
class Solution:
    def Sum_Solution(self, n):
        if n < 2:
            return n
        return n + self.Sum_Solution(n - 1)

2、使用python内置的函数求解。

# -*- coding:utf-8 -*-
class Solution:
    def Sum_Solution(self, n):
        return sum(range(1,n+1))

说明:

(1)Python sum() 函数用于对系列求和计算

语法格式为:sum(iterable[, start])

iterable是可迭代对象:列表、元组、集合

start -- 指定相加的参数,如果没有设置这个值,默认为0。

(2)python range() 函数可创建一个整数列表,一般用在 for 循环中。

https://www.nowcoder.com/questionTerminal/7a0da8fc483247ff8800059e12d7caf1

你可能感兴趣的:(算法笔记,剑指offer)