zoukankan      html  css  js  c++  java
  • 递归实例

    学习前提:

    自己了解递归定义、多个字符串连接、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 }

     

     

    雪儿言
  • 相关阅读:
    第一天
    python自测——其他内容
    python自测——正则表达式
    python自测——高级特性
    人机对战石头剪刀布代码
    [Usaco2004 Nov]Til the Cows Come Home 带奶牛回家
    Dijkstra概念
    洛谷p1339--热浪
    0-1背包问题变形------------cow exhibition
    [Poi2005]Piggy Banks小猪存钱罐
  • 原文地址:https://www.cnblogs.com/weixq351/p/9000401.html
Copyright © 2011-2022 走看看