007.链式加法:编写一个加法函数,接收纯数字作为参数,并且可以实现一个有趣的链式加法
题目来源:codcwars
# @-*- coding: utf-8 -*-
# @File: python每日一练1009.py
# @Time: 2021/10/9 15:13
# @Author: 师玉幺叔
# @Software: Pycharm
"""
链式加法:
1.编写一个加法函数add(),接收纯数字作为参数,并且可以实现一个有趣的链式加法,也就是如果我们调用add(1)(2)(3)可以得到6。
2.示例:
输入: add(1),返回:1
输入: add(1)(2)(3),返回:6
3.题目难度:中等
"""
def add_chain(n: int):
# def inner(y=None):
# if y is None:
# return n
# else:
# return add_chain(n + y)
# return inner
return lambda y=None: n if y is None else add_chain(n + y)
if __name__ == '__main__':
assert add_chain(1)() == 1
assert add_chain(1)(2)() == 3
assert add_chain(1)(2)(3)() == 6