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
#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
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";
#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;
}