python-递归

递归:1.引用自身(自己调用自己)

           2.最小可能性问题:有基本的返回值

经典实例:

1.n的阶乘

n*(n-1)*(n-2)*1

#使用普通函数的方法
def fac1(n):
    result=n
    for i in range(1,n):
        result*=i
    return(result)
#使用递归的方法
def fac2(n):
    if n==1:
        return 1
    else:
        return n*fac2(n-1)
    
n = int(input("请输入要计算阶乘的数字:"))
print("计算结果为:", fac1(n))
print("计算结果为:",fac2(n))
2.n的m次幂
def power(n,m):
    if m==0:
        return (n)
    else:
        return(n*power(n,m-1))

n=int(input("请输入需要计算幂指数的数值:"))
m=int(input("请输入需要计算的次数:"))
print("计算结果为:",power(n,m))
3.二分查找
list_num=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,33]
print("查找的数据范围为:",list_num)
x=int(input("请输入要查找的数据:"))
n = len(list_num) // 2
def count(x,n,list_num):

    if x==list_num[n]:
        return (n+1)
    elif  x>list_num[n]:
        n=n+1
        return (count(x,n,list_num))
    else:
        n=n-1
        return count(x,n,list_num)

print("查找的数据为第:",(count(x,n,list_num)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值