재귀 및 비 - 재귀 알고리즘의 파이썬 예를 들어, 일곱 연습

연습 1

전력 지수 n을 할 수있는 기능을 만들기 ** 난 임의의 숫자입니다

#递归
DEF 전력 (N, I) :
만약 == 1 :
리턴 N
복귀 전력 N * (N, I-1)의
출력 (전원 (2,4))

연습 2

그렇지 않으면 False로, 임의의 문자열 회문 문자열 리턴 진정한 수표인지하는 함수를 작성

# 회문 문자열, 문자열 앞뒤로 읽고 순방향 동일한 #abcba로부터 읽어

# 확인 문자열이 회문을하지하지 다음 경우 첫 번째 문자와 마지막 문자가, 그리고 경우
#이 회문 abcdefgfedcba가 아닌 확인
회문 # 확인 bcdefgfedcb이 아닌
# 확인 cdefgfedc이 회문하지
# 확인 defgfed 회문이 아닌
# 체크 efgfe는 회문 아니다
# FGF의 검사는 회문되지
# g의 검사 회문되지

#递归
DEF FN (들) :
렌 경우 (S) <2 :
참을 리턴
# 전단은
ELIF S [0] = S [-1]!
false를 돌려
복귀 FN (S [1 : 27])
프린트 (FN ( 'abcba'))

연습 3, 원숭이 먹는 복숭아

복숭아의 숫자 오프 첫 날, 절반은 즉시 먹을뿐만 아니라, 먹고, 나머지 복숭아 절반 먹은 다음 날, 그들은 하나 먹고, 넷째 날의 셋째 날 그 #, # 같았다 다섯째 날은 단 하나 먹을 때. # 원숭이의 첫 번째 날이 얼마나 많은 복숭아의 총을 집어 계산하는 프로그램을 작성하라.

# 재귀
N- = 1.
범위에 대한 S (4,0, -1) :
#Print (S)
N- = (. N- + 1) * (2)
인쇄 (N-)

날의 수 = 1 (5)]
번호 # = 4 일 (5 일 번호 1) * 2
번호 # 3 = 일 (주 번호 4 + 1) * (2)
2 = 일수 ( 일 3 + 1) * (2)의 개수
번호 = 1 일 (하루에 2 +1 수) * 2

#递归
DEF Fn2를 (N) :
또한, n == 5 :
창 1
창 (Fn2를 (N + 1) +1) * 2
잉크 (Fn2를 (1))

운동 4 피보나치 수 처음 두의 합과 같다 각각 제 3의 시작 부분에서 열 개수. 테스트의 수는 어느 열 다섯 열 수를 결정하기 위해?

수열 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) :
만약 N <3 :
리턴 1
리턴 fn3 (N-1) + fn3 (N-2)
잉크 (fn3 (15))
인쇄 ( '*'* 30)

운동 5, 복귀 1 + 2 + 3 + 4 + 5 + n 및

# 비 재귀
N- = 100
범위에서 I에 대한 (1100) :
N-N- + = I
인쇄 (N-)

#递归
DEF fn4 (N)
의 경우 n은 1 ==
창 1
창 N + fn4 (N-1)의
잉크 (fn4 (100))
프린트 ( '*'* 30)

운동 6, 수익률 10!

# 비 재귀
# 10 9 필요합니다! 9 8 지금! ... 2 일!
10 = N-
에 대한 I 범위에서 (1,10) :
N-N- =
나는
인쇄 (N-)

#递归
DEF fn5 (N)
의 경우 n은 1 ==
창 1
창 N fn5 (N-1)의
잉크 (fn5 (10))
인쇄 ( '
'* 30)

운동 7, 인쇄 *

# ***
# **
# *

# 재귀
N- = 6.
범위 X (5.)
. N- = 1-N-
인쇄 ( '*'* N-)

#递归
DEF fn6 (N) :
또한, n == 1
잉크 ( ' ')
다른 :
인쇄 ( '
'* N)
fn6 (N-1)
fn6 (5)

게시 된 원본 기사 · 원 찬양 한 · 전망 (11)

추천

출처blog.csdn.net/weixin_46227398/article/details/104815263