023024 递归继续...

0.使用递归编写一个十进制转换为二进制的函数(要求采用“取2取余”的方式,结果与调用bin()一样返回字符串形式)。

def bin2(x):
    if x==1:
        return "1"
    elif x==0:
        return "0"
    elif x%2==0:
        return bin2(x//2)+"0"
    else:
        return bin2(x//2)+"1"
    
1写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==>
[1, 2, 3, 4, 5]
解题思路:利用除以10取余数的方式,每次调用get_digits(n//10),并将余数存放到列表中即可。要注意的是结束条件

设置正确。

def get_digits(n):
    list1=[]
    if n<10:
        list1.append(n)#此处是对列表增加元素 是过程 
        return list1
    else:
        list1.append(n%10)
        return get_digits(n//10)+ list1

2.还记得求回文字符串那道题吗?现在让你使用递归的方式来求解

感觉以下思路有点过于混乱,之后会再修改

def f(temp):
    lenth = len(temp)
    if temp[0] == temp[-1]and lenth>2:
        return f((temp[1:-1]))
    elif lenth==1 or temp[0]==temp[1]:
        return 1
    else:
        print("不是回文联!")
        return -1
temp=input("请输入一句话:")
result=f(temp)
if result !=-1:
    print("是回文联")

def f(n):
    year1=10
    if n==1:
        return year1
    else:
        return f(n-1)+2
result = f(5)
print("第5个人%d岁"%result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值