解题一:
#include<stdio.h>
void f(int k)
{
char a[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
if(k>=1)
{
f(k-1);
printf("%c",a[k-1]);
f(k-1);
}
}
int main()
{
int n;
scanf("%d",&n);
f(n);
}
解题二
#include <stdio.h>
void print(int n) {
if (n == 1) {
putchar('A');
return ;
} else {
print(n - 1);
putchar(n - 1 + 'A');
print(n - 1);
}
}
int main(void) {
int n;
scanf("%d", &n);
print(n);
return 0;
}
运用递归运算,类似于汉诺塔问题