问题描述
FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = “ABA” A3 = “ABACABA” A4 = “ABACABADABACABA” … … 你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA 思路: 规律是想得到第i行,要先打印第i-1行,再打印中间数,再打印第i-1行,所以很容易想到递归,注意第一二行要特殊考虑。
#include <cstdio>
#include <cstring>
void An(int n)
{
int i;
if(n == 1)
printf("A");
for(i = 2; i <= n; i++)
{
if(i <= 2)
An(i-1);
printf("%c", 'A' + i - 1);
An(i-1);
}
}
int main()
{
int n;
scanf("%d", &n);
An(n);
return 0;
}