Ejercicio 3
This commit is contained in:
parent
bf2ce70fba
commit
7bbe739561
|
@ -0,0 +1,42 @@
|
||||||
|
"""
|
||||||
|
# collatz()
|
||||||
|
|
||||||
|
Write a function named collatz() that has one parameter named number. If
|
||||||
|
number is even, then collatz() should print number / 2 and return this value.
|
||||||
|
If number is odd, then collatz() should print and return 3 * number + 1.
|
||||||
|
|
||||||
|
Then write a program that lets the user type in an integer and that
|
||||||
|
keeps calling collatz() on that number until the function returns the value 1.
|
||||||
|
(Amazingly enough, this sequence actually works for any integer—sooner or
|
||||||
|
later, using this sequence, you’ll arrive at 1! Even mathematicians aren’t sure
|
||||||
|
why. Your program is exploring what’s called the Collatz sequence, sometimes
|
||||||
|
called “the simplest impossible math problem.”)
|
||||||
|
"""
|
||||||
|
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
def collatz(number):
|
||||||
|
if number % 2 == 0:
|
||||||
|
res = int(number / 2)
|
||||||
|
else:
|
||||||
|
res = 3 * number + 1
|
||||||
|
print(res)
|
||||||
|
return res
|
||||||
|
|
||||||
|
|
||||||
|
def cli():
|
||||||
|
print("Ingresa un número entero:", end=" ")
|
||||||
|
number = input()
|
||||||
|
try:
|
||||||
|
number = int(number)
|
||||||
|
wait = 0.1 / len(str(number))
|
||||||
|
while number != 1:
|
||||||
|
number = collatz(number)
|
||||||
|
time.sleep(wait)
|
||||||
|
except ValueError:
|
||||||
|
print(f"¡'{number}' no es un número entero!")
|
||||||
|
cli()
|
||||||
|
|
||||||
|
|
||||||
|
cli()
|
Loading…
Reference in New Issue