题目描述:
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入
仅有一个数:N ≤ 26。
输出
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
解题思路:
1.根据规律,形式是str+‘N’+str。根据递归先把左边的输出,然后加上新的N,最后用递归依次把后面的str输出。
2.每个str也是呈对称的形式,所以每个str都可以重新用上述方法递归输出来,当N=1时就截止。
参考代码:
#include<stdio.h>
int fun(int n)
{
char c='A';
if(n>0)
{
if(n==1)
{
printf("%c",c);
return 0;
}
else
{
fun(n-1); //关键代码
printf("%c",c+n-1); //关键代码
fun(n-1); //关键代码
}
}
}
int main()
{
int n;
scanf("%d",&n);
fun(n);
printf("\n");
return 0;
}