2012 Beihang Posgrado Admisión Prueba Máquina Prueba Preguntas

[Descripción del problema] Algunos enteros se pueden descomponer en la suma de varios enteros consecutivos, por ejemplo
15 = 1 + 2 + 3 + 4 + 5 
15 = 4 + 5 + 6
15 = 7 + 8
Algunos enteros no se pueden descomponer en la suma de enteros consecutivos, por ejemplo: 16
[Forma de entrada] Un número entero N (N <= 10000)
[Forma de salida] Todas las combinaciones de descomposición correspondientes al número entero N, si no hay combinación de descomposición, NINGUNO se emite.
[Entrada de muestra]
15
[Salida de muestra]
1 2 3 4 5
4 5 6
7 8
[Entrada de muestra]
16
[Salida de muestra]
NINGUNO
[Descripción de la muestra] Salida de pequeño a grande según el número entero más pequeño en cada descomposición , Cada descomposición ocupa una línea, hay un espacio entre cada número (conserve un espacio al final de cada línea); si no hay una combinación de descomposición, entonces envíe NINGUNO
[estándar de puntuación]

#include <iostream>

using namespace std;

int main()
{
    int N,n=0,z=0;
    cin>>N;
    int i,j,x,y;
    for(i=1;i<=N/2;i++)
    {
        for(j=i;j<N;j++)
        {
            n=n+j;
            if(n==N)
            {
                for(x=i;x<=j;x++)
                {
                    cout<<x<<" ";
                    z++;
                }
                cout<<endl;
                break;
            }
            if(n>N)
                break;
        }
        n=0;
    }
    if(i>N/2&&z==0)
        cout<<"NONE"<<endl;
    return 0;
}
Publicado 31 artículos originales · elogiado 8 · visitas 2157

Supongo que te gusta

Origin blog.csdn.net/weixin_44034024/article/details/104660693
Recomendado
Clasificación