Python exemplo de algoritmo recursivo e não-recursiva, a prática de sete

exercício 1

Criar uma função para fazer o poder exponenciação n ** i é qualquer número

#递归
poder def (n, i):
se i == 1:
retorno n
retorno n * de energia (n, i-1)
de impressão (de alimentação (2,4))

exercício 2

Cria uma função que verifica se uma cadeia arbitrária é uma string palíndromo, um retorno verdadeiro, caso contrário False

# Corda Palindrome, a seqüência de ler da frente para trás e para a frente a ler a partir do mesmo #abcba

# Verifique se o primeiro carácter e o último caractere, e se não, então a string não é um palíndromo
# Verifique abcdefgfedcba não é um palíndromo
# Verifique bcdefgfedcb não é um palíndromo
# Verifique cdefgfedc não é um palíndromo
# Verifique defgfed não é um palíndromo
# cheque efgfe não é um palíndromo
inspeção # fgf não é um palíndromo
verificação # g não é um palíndromo

#递归
def fn (s):
if len (s) <2:
return true
# print (s)
elif s [0] = s [-1]:
retorno False
(s [1: -1]) return fn
impressão (Fn ( 'abcba'))

Exercício 3, macaco comendo pêssegos

O primeiro dia fora de um número de pêssego, metade consumidos imediatamente, mas também comer uma; no dia seguinte o meio pêssego restante comido, eles comem um, o terceiro dia do quarto dia era assim # # quando o quinto dia para comer, apenas um. # Escreva um programa para calcular o primeiro dia do macaco escolheu um total de quantos pêssegos.

# Não recursivo
n- = 1.
Para S no Intervalo (4,0, -1):
#print (S)
N- = (. N- 1 +) * 2
impressão (n-)

Número de dias 5 = 1;
N # = 4 dias (dia 5 número 1) * 2
Número # 3 = dia (Dia 4 N + 1) * 2
# 2 = número de dias ( dia 3, o número de + 1) * 2
# número 1 = dia (dia 2 um número) * 2

#递归
def fn2 (n):
se n == 5:
retorno um
retorno (fn2 (n + 1) 1) * 2
impressão (fn2 (1))

Exercício 4, número de Fibonacci, o número de colunas, desde o início do parágrafo 3, cada um dos quais é igual à soma dos dois primeiros. Número de teste para determinar o número de colunas XV Which?

Sequência de 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):
se n <3:
retorno um
retorno Fn3 (n-1) + Fn3 (n-2)
de impressão (Fn3 (15))
de impressão ( '*' * 30)

Exercício 5, retornos 1 + 2 + 3 + 4 + 5 + n, e

# Não recursivo
n- = 100
para I em Gama (1100):
n-n- + = eu
para impressão (n-)

#递归
def FN4 (n):
if n == 1:
retorno 1
retorno n + FN4 (n-1)
print (FN4 (100))
print ( '*' * 30)

Exercício 6, retornos 10!

# Não-recursiva
# 10 9 necessário! 9 8 agora! ...... 2 1!
10 = N-
para I em Gama (1,10):
n-n- =
I
Imprimir (n-)

#递归
def FN5 (n):
if n == 1:
retorno 1
retorno n FN5 (n-1)
print (FN5 (10))
print ('
'* 30)

Exercício 7, imprimir *

# ***
# **
# *

# Não recursivo
n- = 6.
Para X no intervalo (5.):
. N- = 1-n-
impressão ( '*' * n-)

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

Publicado um artigo original · ganhou elogios 1 · visualizações 11

Acho que você gosta

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