一.题目描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
二.答题规范
1.输入:仅有一个数:N ≤ 26。
2.输出:
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
三.样例
1.输入:3
2.输出:ABACABA
四.解题思路
观察AN,发现每次前面,后面都是上一步的字符串,只有中间是新增的字符。那么就立即想到用递归。然后就是如何让电脑把这些字母输出来,这里用到ASCLL码。64对应A,然后依次往下按字母顺序。
五.实现代码
#include<stdio.h>
// 1.递归调用
void f(int n)//定义函数
if(n==1) printf("A");
else//A2=A1+B+A1;A3=A2+C+A2;.......
{
f(n-1);//调用自身
printf("%c",'A'+n-1);
f(n-1);//再次调用自身
}
}
int main ()
{
int n;
scanf("%d", &n);
f(n);
return 0;
}