Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mapers en 4 Julio 2010, 01:40 am



Título: sucesion!!!!
Publicado por: mapers en 4 Julio 2010, 01:40 am
La entrada 22, la siguiente secuencia de números se imprimirán 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

Código
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.    int n;
  9.    cout<<"ingrese numero"<<endl;
  10.    cin>>n;
  11.   do
  12.    {              
  13.               cout<<n<<"-";
  14.               if((n%2)== 0)
  15.               {
  16.               n=n/2;
  17.               }
  18.                     else{
  19.                          n=(3*n+1)/2;
  20.                          }
  21.  
  22.     }while(n!=1);
  23.  
  24.    system("PAUSE");
  25.    return EXIT_SUCCESS;
  26. }
  27.  
  28.  

porque no me imprime lo que yo quiero !!!! si ya hize la prueba de escritorio


Título: Re: sucesion!!!!
Publicado por: MIG80 en 4 Julio 2010, 02:37 am
La línea n=(3*n+1)/2; debes reemplazarla por n=3*n+1;. Y antes del system("pause") debes imprimir el ultimo número de la serie: cout<<"1\n";


Título: Re: sucesion!!!!
Publicado por: leogtz en 4 Julio 2010, 02:43 am
Código
  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4. int main()
  5. {
  6.   int n;
  7.   cout << "Ingrese numero : ";
  8.   cin>>n;
  9.    do
  10.    {
  11.        cout << n << '-';
  12.        if(n % 2 == 0)
  13.        n = n/2;
  14.        else {
  15.            n=(3*n+1);
  16.            cout << n << '-';
  17.            n /= 2;
  18.        }
  19.    } while(n != 1);
  20.   return EXIT_SUCCESS;
  21. }
  22.  
  23.