[Descripción del problema] Certain número entero se puede descomponer en un número y la forma de números enteros consecutivos, por ejemplo,
15 = 1 + 2 + 3 + 4 + 5
15 = 4 + 5 + 6
15 = 7 + 8
a un cierto número entero no desglosado en enteros consecutivos y, por ejemplo: 16
[a] en la forma de entrada de número entero N (N <= 10.000)
[Todos] explotó formar combinaciones de salida correspondiente a un número entero N, si no hay ninguna combinación de descomposición, la NINGUNO de salida.
entrada de la muestra] [
15
[] salida de muestra
. 1 2. 5. 4. 3
. 4. 5. 6
. 7. 8
[entrada de la muestra]
16
[muestra de salida]
NINGUNO
[] Ejemplo Descripción ascendente entero más pequeño para cada salida en la descomposición de cada descomposición por línea, un espacio (cada uno de la última fila a dejar un espacio) entre cada número, y si no hay ninguna combinación de descomposición, la NINGUNO salida
#include <la iostream> #include <vector> el uso de espacio de nombres STD; int main () { int X; CIN >> X; // necesidades para determinar el valor de int En Flag = 0 ; // Analizando marcados con ninguna descomposición en combinación vector < int > divNumber; // declarar el vector utilizado para almacenar un valor para cada ciclo de la aplicada para ( int n- = 1. ; n- <X; n - ++) // desde 1 -> X-1 itera { int SUM = 0 ; // cálculo la suma vectorial de la número almacenado para ( int= N-I; I <X; I ++ ) { divNumber.push_back (I); SUM = SUM + I; IF (SUM == X) // número que satisface la condición almacenada { para ( int K = 0 ; K <divNumber.size (); K ++) // número de acceso de salida { COUT << divNumber [K] << " " ; } En la bandera = 1. ; COUT << endl; } la otra IF(SUMA> X) // número almacenado es mayor que la suma del número de determinación, el tiempo de acceso no está satisfecho { divNumber.clear (); } } } SI (En la bandera == 0 ) { COUT << " NINGUNO " << endl ; } }
resumen personal :
Sobre la aplicación del vector de la biblioteca estándar.