递归-报数
题目描述
报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:
1. 1 n+n-1
2 11
3 21
4 1211
5 11221
6 212211
给定一个正整数 n(1 ≤?n?≤ 30),输出报数序列的第 n 项。
注意:整数顺序将表示为一个字符串。
使用字符串的拼接
1.第一递归函数的功能:报数,按照其中的整数的顺序进行报数,得到下一个数
2.第二步:找到结束条件
3.第三步:找到等价关系
def func(n):
#找到结束条件
if n==1:
return "1"
elif n==2:
return "11"
elif n==3:
return "21"
else:
count=1
result=""
temp=func(n-1)
print("temp:",temp)
print("temp的倒序数列为:",temp[-1])
for i in range(1,len(temp)):
if temp[i]!=temp[i-1]:
result+=str(count)+temp[i-1]
print("********",result+"\n")
count=1
else:
count+=1
result+=str(count)+temp[-1]
print("last end",result)
print("last count",count)
return result
func(3)

浙公网安备 33010602011771号