Pregunta de Luogu escribiendo lenguaje C ++ | P1028 Cálculo de números

¡Aprende C++ desde pequeño! Registre las preguntas formuladas durante el proceso de preparación de exámenes y aprendizaje de Luogu C ++, y registre cada momento.

Adjunto una publicación resumida: Lenguaje C ++ de Luogu | Resumen_El blog de un comunicador que ama la programación-blog CSDN


[Descripción del Título]

Dado un número entero positivo  n , se requiere que la secuencia se construya de la siguiente manera:

  1. Una secuencia con un solo número  n  es una secuencia legal.
  2. Agregue un número entero positivo al final de una secuencia legal, pero el número entero positivo no puede exceder la mitad del último elemento de la secuencia y se puede obtener una nueva secuencia legal.

Descubra cuántas secuencias legales hay en total. Dos secuencias legales  a y b  son diferentes si y solo si las longitudes de las dos secuencias son diferentes o hay un entero positivo  i ≤∣ a ∣ tal que  ai≠bi .

【ingresar】

La entrada es solo un número entero en una línea, que representa  n .

【Producción】

Genere un número entero por línea, que representa el número legal de secuencias.

【Muestra de entrada】

6

【Muestra de salida】

6

[Explicación detallada del código]

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n, a[1005]={0, 1, 2};
    cin >> n;
    for (int i=3; i<=n; i++) {
        if (i%2==1) a[i] = a[i-1];
        else a[i] = a[i-1] + a[i/2];
    }

    cout << a[n];
    return 0;
}

【resultado de la operación】

6
6

Supongo que te gusta

Origin blog.csdn.net/guolianggsta/article/details/133950121
Recomendado
Clasificación