Python ejemplo de algoritmo recursivo y no recursivo, la práctica de siete

ejercicio 1

Crear una función para hacer la exponenciación de potencia N ** i es un número cualquiera

#递归
poder def (n, i):
si i == 1:
retorno n
retorno n * potencia (n, i-1)
de impresión (potencia (2,4))

ejercicio 2

Crea una función que comprueba si una cadena arbitraria es una cadena palíndromo, un verdadero cambio, de lo contrario Falso

# Palíndromo cadena, la cadena de leer de adelante hacia atrás y hacia adelante para leer desde el mismo #abcba

# Comprobar si el primer carácter y el último carácter, y si no, entonces la cadena no es un palíndromo
# Compruebe abcdefgfedcba no es un palíndromo
# Comprobar bcdefgfedcb no es un palíndromo
# Comprobar cdefgfedc no es un palíndromo
# Comprobar defgfed no es un palíndromo
# efgfe cheque no es un palíndromo
no la inspección # FGF es un palíndromo
no cheque # g es un palíndromo

#递归
def fn (s):
si len (s) <2:
de vuelta verdad
# impresión (s)
elif s [0] = s [-1]:
return false
retorno fn (s [1: -1])
de impresión (fn ( 'ABCBA'))

Ejercicio 3, mono comiendo melocotones

El primer día de una serie de melocotón, medio comido inmediatamente, pero también comen a; al día siguiente el melocotón medio restante comido, comen uno; el tercer día de la cuarta día era como #, # cuando el quinto día para comer, sólo uno. # Escribir un programa para calcular el primer día del mono recogió un total de cuántos duraznos.

# No recursiva
. N- = 1
para S en el rango de (4,0, -1):
#Print (S)
n- = (. N- + 1) * 2
de impresión (n-)

Número de días 5 = 1;
Número # = día 4 (días 5 número 1) * 2
Número # 3 = día (Día 4 Número + 1) * 2
# 2 = número de días ( día 3 el número de + 1) * 2
número # 1 = día (día 2 1 número) * 2

#递归
def Fn2 (n):
si n == 5:
retorno 1
retorno (Fn2 (n + 1) 1) * 2
de impresión (Fn2 (1))

Ejercicio 4, número de Fibonacci, el número de columnas desde el principio del párrafo 3, cada uno de los cuales es igual a la suma de los dos primeros. Número de pruebas para determinar el número de columnas XV ¿Qué?

Secuencia 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368 ...

#递归
def Fn3 (n):
si n <3:
retorno 1
retorno Fn3 (n-1) + Fn3 (n-2)
de impresión (Fn3 (15))
de impresión ( '*' * 30)

Ejercicio 5, devoluciones 1 + 2 + 3 + 4 + 5 + n, y

# No recursiva
n- = 100
para I en Rango (1100):
n-n- + = I
de impresión (n-)

#递归
def FN4 (n):
si n == 1:
return 1
retorno n + FN4 (n-1)
de impresión (FN4 (100))
print ( '*' * 30)

Ejercicio 6, 10 vuelve!

# No recursivo
# 10 9 required! 9 8 ahora! ...... 2 1!
10 = n-
para I en el rango de (1,10):
n-n- =
I
de impresión (n-)

#递归
def FN5 (n):
si n == 1:
return 1
retorno n FN5 (n-1)
de impresión (FN5 (10))
print ('
'* 30)

Ejercicio 7, imprimir *

*** #
# **
# *

# No recursiva
. N- = 6
para X en Rango (5.):
. N- = 1-n-
Imprimir ( '*' * n-)

#递归
def FN6 (n):
si n == 1:
print ( ' ')
else:
print ('
' * n)
FN6 (n-1)
FN6 (5)

Publicó un artículo original · ganado elogios 1 · vistas 11

Supongo que te gusta

Origin blog.csdn.net/weixin_46227398/article/details/104815263
Recomendado
Clasificación