ayuda para un programa

diegort
13 de Noviembre del 2004
el programa es para q muestre todos los numeros entre 1 y 100 q se pueden expresar como suma de numeros consecutivos, como el 5=3+2; 6=1+2+3 y asi sucesivamente
#include <iostream>
using namespace std;

int main(){
int i, j, l, numero;

for(i=1; i<=100; i++){
numero=0;
for(j=0; j<=i; j++){
numero=0;
for(l=j+1; l<=i; l++){
if(numero==i)
cout<<i<<"t";

numero=numero+l;
}
}
}
cout<<"nPresione una tecla y seguidamente ENTER: ";
cin>>i;
}

este programa funciona bien, xo me salen algunos numeros varia veces. como se puede corregir?

Pedro
13 de Noviembre del 2004
El fallo consiste en no salir de los bucles cuando se llega al objetivo hasta el primero:

#include <iostream>
using namespace std;

int main()
{
int i, j, l, numero;

for(i=1; i<=100; i++){
numero=0;
for(j=0; j<=i; j++){
numero=0;
for(l=j+1; l<=i; l++){
if(numero==i){
cout<<i<<"t";
j=101;
l=101;
}
numero=numero+l;
}
}
}
cout<<"nPresione una tecla y seguidamente ENTER: ";
cin>>i;
}