hola
Recursión
1
Problema 1. Escribir una función que calcule el factorial
de un entero positivo. Por ejemplo, 4!=24=1*2*3*4 y 0!=1
Solución 1: x !
= 1*2*...*x
(0!=1)
deffactorial(x):
producto=1
i=1
while i = 10 :
n = n + 1
x = x/10 #elimina último dígito
return n
x
n
245
1
24
2
2
3
6
def digitos(x):
n=1 #contador de dígitos
while x >= 10 :
n= n + 1
x = x/10 #elimina último dígito
return n
x=int(input('Ingrese un numero, 0
para finalizar'))
while x != 0:
print (x, 'tiene: ', digitos(x),
' digitos')
x=int(input('Ingrese unnumero, 0
para finalizar'))
7
solución recursiva:
1 si x= 10
def digitos(x):
if x < 10 :
return 1
else:
return 1 + digitos(x/10)
digitos(245)=1+digitos(24)
digitos(24)=1+digitos(2)digitos(2)=1
digitos(24)=1+1=2
digitos(245)=1+2=3
8
Problema
Método que reciba un entero y lo escriba al revés
Ejemplo: invertir(345); escribe 543.
def invertir(x):
9
Iterativo
definvertir(x):
while x>=10:
print (x%10, end='')
x=int(x/10)
print (x)
10
Def invertir(x):
while x>=10:
print (x%10, end='')
x=int(x/10)
print (x)
y=int(input('Ingrese un numero, 0 paracontinuar'))
while y>=0:
invertir(y)
y=int(input('Ingrese un numero, 0 para continuar'))
11
Recursivo
def invertir(x):
if x>=10:
print (x%10, end='')
invertir(int(x/10))
else:
print (x)12
Recursivo Abreviado
def invertir(x):
print (x%10, end='')
if x>=10:
invertir(int(x/10))
13
Problema. Método que reciba un entero y lo escriba al revés
Ejemplo: invertir(345);escribe 543.
def invertir(x):
iterativa
recursiva
while x>=10 :
if x>=10 :
print (x%10, end='')
print (x%10, end='')
x=int(x/10)
invertir(int(x/10))
print (x)
else:
print (x)
recursivaabreviada
print (x%10, end='')#escribir último dígito
if x >= 10:
#si tiene más dígitos
invertir(int(x/10))# invertirlos
14
Problema
Función que calcule el máximo común divisor
Ejemplos:...
Regístrate para leer el documento completo.