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)