Implementado en C ++: FJ cadena de impresión

Descripción del problema
  FJ en la mesa de arena a escribir alguna cadena como esta:
  A1 = "A"
  A2 = "ABA"
  A3 = "ABACABA"
  A4 = "ABACABADABACABA"
  ... ...
  que puedes descubrir las reglas y que escriban todas las columnas que AN?
Formato de entrada
  Sólo unos pocos: N ≤ 26.
Formato de salida
  Por favor salida correspondiente cadena AN, a un carácter de nueva línea. La salida no debe contener espacio adicional o avance de línea, retorno de carro.
entrada de la muestra
3
Ejemplo de salida
punta de lanza
 
Pensando: Ejemplos del título se observa, se encuentran cada una tiene una simetría de cadena, n = 1, A es el centro de simetría a ella, n = 2, B es un centro de simetría en, n = 3, es el centro de simetría con C ...... simétrico y cada vez, se hacen en ambos lados de una cadena que consta de simetría, a fin de utilizar una función recursiva para resolver este problema.
 
1 #include <iostream>
 2  usando  espacio de nombres std;
3  
4  clase print_string
 5  {
 6  pública :
 7      int get_n ()
 8      {
 9          cin >> n;
10          de retorno n;
11      }
 12  
13      void recursión ( int n)     // 递归函数
14      {
 15          si (n == 1 )
 16          {
 17              cout << "Un " ;
 18 es          }
 . 19          el otro 
20 es          {
 21 es              recursión (N- . 1 );
 22 es              T = ' A ' + N- . 1 ;
 23 es              COUT << T;
 24              recursión (N- 1. );
 25          }
 26 es      }
 27  privada :
 28      int n-;
 29      Char T;         // para cada salida de control recursivo 
30  };
 31 es  
32  intprincipal ( void )
 33  {
 34      print_string x;
35      int a;
36      a = x.get_n ();
37      x.recursion (a);
38      de retorno  0 ;
39 }

 

En cuanto a un código escrito en lenguaje C:

1 # include <stdio.h>
 2  
3  int main ()
 4  
5  {
 6  
7      int i, j;
8  
9      Char c [ 50 ] [ 1000 ];
10  
11      int n;
12  
13      carbonilla CC = ' A ' ;
14  
15      int count = 1 ;
16  
17      int temp;
18  
19      scanf ( " % d " , y n);
20  
21     c [ 1 ] [ 1 ] = ' A ' ;
22  
23      c [ 1 ] [ 2 ] = ' \ 0 ' ;
24  
25      para (i = 2 ; i <= n; i ++ )
 26  
27      {
 28  
29          temp = contar;
30  
31          count = count * 2 + 1 ;
32  
33          para (j = 1 ; c [i- 1 !] [J] = ' \ 0 '; j ++ )
 34  
35          {
 36  
37              c [i] [j] = c [i- 1 ] [j];
38  
39              c [i] [j + temp + 1 ] = c [i- 1 ] [j];
40  
41              
42  
43          }
 44  
45          c [i] [temp + 1 ] = ++ cc;
46  
47          c [i] [j + temp + 1 ] = ' \ 0 ' ;
48  
49      }   
 50  
51      
52  
53      para (i = 1 ;! C [n] [i] =' \ 0 ' ; i ++ )
 54  
55          printf ( " % c " , c [n] [i]);
56  
57      printf ( " \ n " );
58  
59              
60  
61      de retorno  0 ;
62  
63 }

fuente original: https: //blog.csdn.net/a237653639/article/details/21323641

Supongo que te gusta

Origin www.cnblogs.com/guanrongda-KaguraSakura/p/12630668.html
Recomendado
Clasificación