控制結構與函式練習(二)
抽空繼續做作業,時間不連續,進度有快有慢,各位看官,還請多多包涵啊。
1. 編寫一個for迴圈,計算字串中所有字母的Unicode程式碼的乘積。舉例:“Hello”中所有字元的乘積是9415087488L
Ans:
scala> var m : BigInt = 1
m: BigInt = 1
scala> for (i <- "Hello") { m = m * i.toInt}
scala> println(m)
9415087488
2. 題目如上一題,但不用迴圈
Ans:
scala> "Hello".foldLeft(List[BigInt]())((b,a) => a :: b).reverse.reduce(_ * _)
res157: BigInt = 9415087488
or:
scala> "Hello".foldLeft(1L)(_ * _)
res158: Long = 9415087488
3. 編寫一個函式product(s: String),計算上面的乘積
Ans:
scala> def product(s: String) = {
| s.foldLeft(1L)(_ * _)
| }
product: (s: String)Long
scala> product("Hello")
res1: Long = 9415087488
4. 用遞迴函式實現上面的乘積
Ans:
scala> def product(s: String) : BigInt = {
| if (s.length <= 0) 1
| else s.head.toInt * product(s.tail)
| }
product: (s: String)BigInt
scala> product("Hello")
res1: BigInt = 9415087488
相關文章
- Python函式練習題Python函式
- mysql函式練習題MySql函式
- Python學習手冊之控制結構(二)Python
- 建構函式與解構函式函式
- 函式指標練習題函式指標
- MATLAB巢狀函式練習Matlab巢狀函式
- 函式學習二函式
- 2. 流程控制 與 函式 |《 刻意學習 Golang 》函式Golang
- 二維陣列和函式綜合程式設計練習陣列函式程式設計
- PHP 手冊 (類與物件) 學習筆記五:建構函式和解構函式PHP物件筆記函式
- PHP筆記:建構函式與解構函式PHP筆記函式
- 字串函式學習二字串函式
- TypeScript學習(二)—— 函式TypeScript函式
- PTA練習7 二叉樹(1)——資料結構二叉樹資料結構
- 關於建構函式與解構函式的分享函式
- 建構函式與普通函式的區別函式
- python中list方法與函式的學習總結Python函式
- 資料結構專題練習資料結構
- JS資料結構-棧-練習JS資料結構
- 高階函式與標籤函式,解構賦值與物件字面量的簡化學習函式賦值物件
- JS 建構函式與類JS函式
- 學習Scala 方法與函式函式
- 預設建構函式學習函式
- if-else擴充套件結構練習套件
- 曹廣福實變函式論與泛函分析部分習題解答 習題二 三 四函式泛函分析
- PHP 學習總結之函式PHP函式
- c++函式學習總結C++函式
- 迴圈單連結串列建構函式、解構函式C++實現函式C++
- Python(二):選擇結構與迴圈結構Python
- C++學習筆記(二)——函式C++筆記函式
- 預設建構函式、引數化建構函式、複製建構函式、解構函式函式
- interrupt結構體和相關函式結構體函式
- pytest(7)-yield與終結函式函式
- Java 建構函式與修飾符詳解:初始化物件與控制許可權Java函式物件
- 資料結構與演算法-學習筆記(二)資料結構演算法筆記
- 控制make的函式函式
- 資料結構與演算法-表示式二叉樹資料結構演算法二叉樹
- 資料結構 其五 樹與二叉樹學習總結資料結構二叉樹
- C++ 建構函式和解構函式C++函式