Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]

#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
   int n;
   cout<<"ingrese numero"<<endl;
   cin>>n;
  do
   {              
              cout<<n<<"-";
              if((n%2)== 0)
              {
              n=n/2;
              }
                    else{
                         n=(3*n+1)/2;
                         }
             
    }while(n!=1);
   
   system("PAUSE");
   return EXIT_SUCCESS;
}



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 (cpp) [Seleccionar]
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
   int n;
   cout << "Ingrese numero : ";
   cin>>n;
    do
    {
        cout << n << '-';
        if(n % 2 == 0)
        n = n/2;
        else {
            n=(3*n+1);
            cout << n << '-';
            n /= 2;
        }
    } while(n != 1);
   return EXIT_SUCCESS;
}