Python - Ciclo while con Python

 
Vista:
sin imagen de perfil
Val: 20
Ha aumentado su posición en 78 puestos en Python (en relación al último mes)
Gráfica de Python

Ciclo while con Python

Publicado por Alexander (5 intervenciones) el 25/08/2020 04:12:41
1
 
Hola a todo el que lea esto.
Necesito ayuda para encontrar una posible solución a este ejercicio. Toda ayuda se agradece.

Escenario:

1.- Toma cualquier número entero que no sea negativo y que no sea cero y asígnale el nombre c0.
2.- Si es par, evalúa un nuevo c0 como c0 ÷ 2.
3.- De lo contrario, si es impar, evalúe un nuevo c0 como 3 × c0 + 1.
4.- Si c0 ≠ 1, salta al punto 2.

Escribe un programa que lea un número natural y ejecute los pasos anteriores siempre que c0 sea diferente de 1. También queremos que cuente los pasos necesarios para lograr el objetivo. Tu código también debe mostrar todos los valores intermedios de c0.

Ejemplo:

Entrada de muestra: 15

Salida esperada:

46
23
70
35
106
53
160
80
40
20
10
5
16
8
4
2
1
pasos = 17


Entrada de muestra: 16

Salida esperada:

8
4
2
1
pasos = 4


Por cierto, genere este código pero no me lleva a ningún lado... Creo que debo seguir intentando

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
c0 = int(input("Ingresa un número:"))
 
x = 0
y = 1
 
while c0:
    c0 %= 2
    print(c0)
    if c0 == x:
        c0 /= 2
        print(c0)
    if c0 == y:
        c0 *= 3
        c0 += 1
        print(c0)
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 105
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ciclo while con Python

Publicado por JOSE JEREMIAS CABALLERO (24 intervenciones) el 25/08/2020 06:20:43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
c = int(input("Ingresa un número:"))
while c<=0:
    c = int(input("Ingresa un número:"))
c0=c
pasos=0
while c0!=1:
    if c0%2 == 0:
        c0=int(c0/2)
        print(c0)
        pasos=pasos+1
    elif c0%2== 1:
        c0=3*c0 +1
        print(c0)
        pasos=pasos+1
print("pasos=",pasos)



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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
E:\PYTHON 2020>python while1.py
Ingresa un número:15
46
23
70
35
106
53
160
80
40
20
10
5
16
8
4
2
1
pasos= 17
 
E:\PYTHON 2020>python while1.py
Ingresa un número:16
8
4
2
1
pasos= 4
 
E:\PYTHON 2020>python while1.py
Ingresa un número:-6
Ingresa un número:-12
Ingresa un número:-13
Ingresa un número:0
Ingresa un número:-9
Ingresa un número:0
Ingresa un número:5
16
8
4
2
1
pasos= 5
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar