基础练习 FJ的字符串

问题描述
  FJ在沙盘上写了这样一些字符串:
  A1 = “A”
  A2 = “ABA”
  A3 = “ABACABA”
  A4 = “ABACABADABACABA”
  … …
  你能找出其中的规律并写所有的数列AN吗?
输入格式
  仅有一个数:N ≤ 26。
输出格式
  请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3 
样例输出
ABACABA

锦囊1

递归。

锦囊2

使用递归输出。

C/C++测试代码

 1 #include<stdio.h>
 2 #include<string.h>
 3 char s[1<<22];
 4 
 5 char *fun(int n)
 6 {
 7     char c='A'+n-1;
 8     if (n == 1)
 9     {
10         strcat(s, "A");
11         return "A";
12     }
13     fun(n - 1);
14     sprintf(s + strlen(s)+1, "%s", s);
15     s[strlen(s)] = c;
16     return s;
17 
18 }
19 int main()
20 {
21     int n;
22     scanf("%d", &n);
23     printf("%s\n",fun(n));
24     return 0;
25 }

Java测试代码

 1 import java.util.Scanner;
 2 
 3 public class Main {
 4 
 5     public static String fun(int n) {
 6         if (n == 1) {
 7             return "A";
 8         } else {
 9             return fun(n - 1) + (char) ('A' + n - 1) + fun(n - 1);
10         }
11     }
12 
13     public static void main(String[] args) {
14         Scanner sc = new Scanner(System.in);
15         int n = sc.nextInt();
16         System.out.println(fun(n));
17     }
18 }

 

posted @ 2016-05-29 13:10  新生代黑马  阅读(2100)  评论(0)    收藏  举报