码迷,mamicode.com
首页 > 其他好文 > 详细

递归实例

时间:2018-05-07 00:47:17      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:bad   中序   输出   并且   存储   回车符   mil   一个   回车   

学习前提:

自己了解递归定义、多个字符串连接、sprintf()的用法和注意[*]、<< 左移符号知识、二叉树中序遍历等。

 

题目描述:

 

FJ的字符串

FJ在沙盘上写了这样一些字符串:
  A1 = “A”
  A2 = “ABA”
  A3 = “ABACABA”
  A4 = “ABACABADABACABA”
  … …
  你能找出其中的规律并写所有的数列AN吗?

 

输入格式:

仅有一个数:N ≤ 26。

输出格式:

 

  请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。

 

样例输入:

 

3

 

样例输出:

 

ABACABA
 

思路详解:

这道题只是考虑输出,不用存储中间结果。其次,采用递归的做法。再则,观察可以看出输出呈现中间对称,并且和二叉树的中序遍历相似。所以采用二叉树遍历的类似函数(并且是一个返回空值的函数,可以不用返回char或者)比设置sprintf和strlen求解更加简单。
 

代码详解:

 

 1 #include<stdio.h>
 2 void p(int n)
 3 {
 4     if(n==1)
 5     {
 6         printf("A");
 7         return ;
 8     }
 9     else
10     {
11         p(n-1);
12         printf("%c",A+n-1);
13         p(n-1);
14     }
15 }
16 int main()
17 {
18     int n;
19     scanf("%d",&n);
20     p(n);
21 }

 

 

技术分享图片

 

 

 

 

递归实例

标签:bad   中序   输出   并且   存储   回车符   mil   一个   回车   

原文地址:https://www.cnblogs.com/weixq351/p/9000401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!