Scala Scala的遞迴函式

2021-10-08 10:13:06 字數 1388 閱讀 3846

知識點:

scala遞迴函式的返回值型別必須顯示宣告

編寫遞迴函式掌握兩要素:

①找出項與項之間的函式關係

②找出結束條件

scala遞迴函式,結束條件的返回值,必須用return返回

object demo01  通過此遞迴函式,判斷第n項的數字是多少

//函式關係:f(n)=f(n-1)+f(n-2)

//結束條件:f(0)=2 f(1)=3

def f1

(n:int)

:int=

//> f1: (n: int)intf1(

6)//> res0: int = 34

//練習1:給定乙個數列:2 3 4 9 16 81 ...

//編寫乙個遞迴函式 ,def f2(n:int)={} 通過此遞迴函式,判斷第n項的數字是多少

//函式關係:f(n)=f(n-2)*f(n-2)

//結束條件:f(0)=2 f(1)=3

def f2

(n:int)

:int=

//> f2: (n: int)intf2(

7)//> res1: int = 6561

//練習2:給定乙個數列:2 3 4 9 8 27 16 81 ...

//編寫乙個遞迴函式 ,def f3(n:int)={} 通過此遞迴函式,判斷第n項的數字是多少

//函式關係:n是偶數項 f(n)=2*f(n-2) n是奇數項 f(n)=3*f(n-2)

//結束條件:f(0)=2 f(1)=3

def f3

(n:int)

:int=

//> f3: (n: int)intf3(

9)//> res2: int = 243

//作業:編寫函式計算x的n次方,其中n是整數,要考慮等n是0,正偶數,正奇數,負數這幾種情況。

//比如當x=2時,此函式要算出 2^4,2^3,2^0,2^(-1)對應的值

//mi(x:int,n:int):double=

//mi(2,10)=1024

//mi(2,-1)=0.5

def mi

(x:int,n:int)

:double=

//> mi: (x: int, n: int)doublemi(

2,10)

//> res3: double = 1024.0mi(

2,7)

//> res4: double = 128.0mi(

2,0)

//> res5: double = 1.0mi(

2,-1

)//> res6: double = 0.5

}

遞迴之遞迴的函式

遞迴的函式 time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 給定乙個函式 f a,b,c 如果 a 0 或 b 0 或 c 0 返回值為 1 如果 a 20 或 b 20 或...

遞迴的函式

problem description 給定乙個函式 f a,b,c 如果 a 0 或 b 0 或 c 0 返回值為 1 如果 a 20 或 b 20 或 c 20 返回值為 f 20,20,20 如果 a b 並且 b c 返回 f a,b,c 1 f a,b 1,c 1 f a,b 1,c 其它...

遞迴的函式

time limit 1000ms memory limit 65536kb submit statistic discuss problem description 給定乙個函式 f a,b,c 如果 a 0 或 b 0 或 c 0 返回值為 1 如果 a 20 或 b 20 或 c 20 返回值...