Dev - C++ - Contar el número de pasos de un bucle en C++

 
Vista:
sin imagen de perfil

Contar el número de pasos de un bucle en C++

Publicado por Carles (2 intervenciones) el 18/10/2017 21:05:40
Hola, me piden un problema en C++ que me cuente el número de pasos hechos en un bucle.
Os dejo el enunciado:
Sea n cualquier natural estrictamente positivo. Considerad el siguiente proceso: Si n es par, divididlo por dos. De lo contrario, multiplicad n por 3 y sumadle 1. Cuando llegue a 1, que pare. Por ejemplo, comenzando en 3, se obtiene la secuencia: 3, 10, 5, 16, 8, 4, 2, 1. En este problema no os pedirá una demostración, sólo que se haga un programa que escriba cuantos pasos tarda en llegar a 1 cada n dada
Salida: Para cada n, escribid cuántos pasos se tarda en llegar a 1. Suponed que este número está bien definido, es decir, que la conjetura del enunciado es cierta.

Yo he hecho este programa, que funciona por lo que se refiere al proceso, pero lo que no tengo claro es CÓMO PUEDO CONTAR LOS PASOS QUE HA HECHO EL BUCLE. Es decir, en el caso de 3, que es el ejemplo, ponen que se han hecho 7 pasos. (es decir, todos los números que hay menos el uno). Os agradecería si me pudiérais explicar un poco cómo hacerlo. Gracias !!! Ah, las cout << n << endl; sobran, no hay que ponerlas pero yo las he puesto por probar si iba la serie

#include <iostream>
using namespace std;

int main() {
int n;
while (cin >> n) {
while (n != 1) {
if (n%2 == 0) {
n = n/2;
cout << n << endl;
}
else {
n = 3*n+1;
cout << n << endl;
}
}
}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Contar el número de pasos de un bucle en C++

Publicado por Amando (3 intervenciones) el 19/10/2017 02:30:14
ESPERO TE SIRVA, SALUDOS!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
using namespace std;
 
int main()
{
int n;
int contador=0;
cin >> n ;
while (n != 1)
{
if (n%2 == 0)
{
n = n/2;
cout << n << endl;
contador++;
}
else {
n = 3*n+1;
cout << n << endl;
contador++;
}
}
 
cout << "\n" <<"NUMERO DE PASOS: " << contador;
 
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar