剑指offer 求1+2+3+...+n

求1+2+3+…+n

题目

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

方法

1
2
3
4
5
6
7
8
# -*- coding:utf-8 -*-
class Solution:
def Sum_Solution(self, n):
# write code here
def add(x,y):
return x+y
# function reduce: applies a rolling computation to sequential pairs of values in a list
return reduce(add,range(n+1))

reduce()函数

描述
reduce() 函数会对参数序列中元素进行累积。

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

语法
reduce() 函数语法:
reduce(function, iterable[, initializer])

参数
function — 函数,有两个参数
iterable — 可迭代对象
initializer — 可选,初始参数

返回值
返回函数计算结果。