已知有列表: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
defsum_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 這是求階乘的普通做法 ...