不用程序关键字求连续数字的和1+2+3+4+5...+n

递归与循环新实现
本文探讨了在不使用标准for循环和if条件语句的情况下,如何通过构造函数连续相加实现循环效果,并通过类的方法实现if判断逻辑,进而利用递归完成数值求和。

思路:递归和循环都会用到关键字比如for,if,等,但是不允许使用那么如果通过其他方式实现for和if功能呢?

1.连续相加,可以通过再函数里写构造函数来实现,没实例化一个函数在构造函数里做一次相关运算,但实例化n个的时候n不好控制。

2.通过将函数写到两个类中,实现if判断功能,然后通过递归来实现。(用一个数组充放两个类,用n作为数组中元素个数,但n要通过转为bool类型后再两次取反可以转化为0,1.1的时候递归,0的时候作为递归出口)

a = []

class B(object):
    def sum_(self,n):
        return a[~~bool(n)].sum_(n-1)+n
class A(object):
    def sum_(self,n):
        return 0
def v(n):
    aa = A()
    bb = B()
    a.append(aa)
    a.append(bb)
    value = a[1].sum_(n)
    return value
print v(2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值