控制結構與函式練習(三)
今天繼續控制結構與函式部分的練習,最後一題了,進度有點兒慢哦。
[題目] 編寫函式計算xn,其中n是整數,使用如下遞迴定義:
- xn = y2,如果n是正偶數的話,這裡的y = xn/2;
- x = x.xn-1,如果n是正奇數的話;
- x0 = 1;
- xn = 1/x-n,如果n是負數的話。
不得使用return語句。
Ans:
scala> def x_n(x : Double, n : Int) : Double = {
| if (n > 0 && n%2 == 0) x_n(x, n/2) * x_n(x, n/2)
| else if (n > 0 && n%2 == 1) x * x_n(x, n - 1)
| else if (n == 0) 1
| else 1 / x_n(x, -n)
| }
x_n: (x: Double, n: Int)Double
scala> x_n(2, -2)
res31: Double = 0.25
scala> x_n(2, -81)
res32: Double = 4.1359030627651384E-25
scala> x_n(2, 113)
res33: Double = 1.0384593717069655E34
scala> x_n(2, 16)
res34: Double = 65536.0
scala> x_n(2, 0)
res35: Double = 1.0
scala> x_n(2, 10)
res36: Double = 1024.0
scala> x_n(2, 9)
res37: Double = 512.0
scala> x_n(2, 18)
res38: Double = 262144.0
scala> x_n(2, 8)
res39: Double = 256.0
相關文章
- 控制結構與函式練習(一)函式
- 控制結構與函式練習(二)函式
- Python3控制結構與函式Python函式
- 第三章 函式與程式結構函式
- oracle的case函式和case控制結構Oracle函式
- mysql函式練習題MySql函式
- 建構函式與解構函式函式
- Go語言流程控制結構和函式解析Go函式
- 函式學習三函式
- MATLAB巢狀函式練習Matlab巢狀函式
- matlab每日練習 lenght函式Matlab函式
- 2. 流程控制 與 函式 |《 刻意學習 Golang 》函式Golang
- PHP 手冊 (類與物件) 學習筆記五:建構函式和解構函式PHP物件筆記函式
- PHP筆記:建構函式與解構函式PHP筆記函式
- 字串函式學習三字串函式
- [C練習]實現memcpy原型函式memcpy原型函式
- 練習 讀取函式裡的值函式
- 關於建構函式與解構函式的分享函式
- JS資料結構-棧-練習JS資料結構
- [C練習]my_atoi函式實現函式
- ORACLE單行函式與多行函式之三:數值函式Oracle函式
- 建構函式與普通函式的區別函式
- Objective-C學習筆記---建構函式和解構函式Object筆記函式
- 結構體三種例項化方法(含成員函式)結構體函式
- if-else擴充套件結構練習套件
- 建構函式與解構函式是否可以丟擲異常函式
- Linux字元驅動程式的基本結構與函式Linux字元函式
- C++語言之結構體、類、建構函式、拷貝建構函式C++結構體函式
- JS 建構函式與類JS函式
- python3 的 round 函式的 練習Python函式
- python程式的三種控制結構Python
- python中list方法與函式的學習總結Python函式
- fstat函式及struct stat結構函式Struct
- javaSE練習--運算子和條件結構Java
- 資料結構的練習day1資料結構
- 學習Scala 方法與函式函式
- 預設建構函式學習函式
- Scala學習(三)練習