问题描述
FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = “ABA” A3 = “ABACABA” A4 = “ABACABADABACABA” … … 你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
def generate_string(N):
if N == 1:
return "A"
else:
return generate_string(N-1) + chr(N-1 + ord('A')) + generate_string(N-1)
N = int(input())
print(generate_string(N))
思路
这个代码的主要思路是利用递归生成字符串。首先,如果N为1,那么直接返回"A"。如果N大于1,那么就生成前一项的字符串,然后在中间加上当前项对应的字母,再加上前一项的字符串。这样就形成了类似于"A", "ABA", "ABACABA"的模式。这个过程会持续到N等于输入值为止。