遞迴 例項1

2022-08-26 07:24:09 字數 801 閱讀 9552

已知有列表:

l = [[3,5,8],10,[[13,14],15],18]

1)寫出乙個函式print_list(lst)列印出列表中所有數字

print_list(l)

2)寫出乙個函式sum_list(lst)返回列表中所有數字的和

print_list(sum_list(l))

注:type(x) 可以返回乙個變數的型別l = [[3,5,8],10,[[13,14],15],18]

defprint_list(l):

for x in

l:

if type(x) != list: #

判斷對應元素是乙個列表還是數值,如果是數值直接列印

print(x,end='')

else: #

否則呼叫print_list()遞迴的將對應列表內元素進行列印

print_list(x)

print_list(l)

執行結果:

3 5 8 10 13 14 15 18

def

sum_list(lst):

val =0

for x in

lst:

if type(x) !=list:

val +=x

else

: val+=sum_list(x)

return

valprint

(sum_list(l))

執行結果:

86

遞迴演算法例項

如 求1 2 3 4 n 1.方法 public static int operation int n 注意返回值和引數 2.根據提議,當值為1時表示不再遞迴,那麼此處定義為程式出口,即 if n 1 如果未到達出口,那麼進行遞迴運算 else if n 1 這裡注意的地方有 operation n...

遞迴演算法例項

public class digui else system.out.println 一列數的規則如下 1 1 2 3 5 8 13 21 34 求第30位數是多少 public static int fribonacci int n 求1 2 3 4 5 6 7 1000的和 static int...

函式遞迴(例項)

遞迴 函式自己呼叫自己 函式一旦進入遞迴,可能需要很多次呼叫才能遞迴結束。呼叫關係會非常複雜 由於是同乙個函式呼叫自己,每次呼叫執行的 都很相似,涉及到的區域性變數的名字也都一樣,就會特別容易讓人混淆。先舉乙個簡單的例子 求n的階乘 如下 示例 include include 這是求階乘的普通做法 ...