控制結構與函式練習(二)
抽空繼續做作業,時間不連續,進度有快有慢,各位看官,還請多多包涵啊。
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
相關文章
- 控制結構與函式練習(一)函式
- 控制結構與函式練習(三)函式
- Python3控制結構與函式Python函式
- oracle的case函式和case控制結構Oracle函式
- mysql函式練習題MySql函式
- 二維陣列和函式綜合程式設計練習陣列函式程式設計
- 建構函式與解構函式函式
- Python學習手冊之控制結構(二)Python
- Go語言流程控制結構和函式解析Go函式
- 函式學習二函式
- maven 學習總結(二)——Maven專案構建過程練習Maven
- PTA練習7 二叉樹(1)——資料結構二叉樹資料結構
- MATLAB巢狀函式練習Matlab巢狀函式
- matlab每日練習 lenght函式Matlab函式
- 2. 流程控制 與 函式 |《 刻意學習 Golang 》函式Golang
- PHP 手冊 (類與物件) 學習筆記五:建構函式和解構函式PHP物件筆記函式
- 字串函式學習二字串函式
- TypeScript學習(二)—— 函式TypeScript函式
- js學習二函式JS函式
- PHP筆記:建構函式與解構函式PHP筆記函式
- 第三章 函式與程式結構函式
- [C練習]實現memcpy原型函式memcpy原型函式
- 練習 讀取函式裡的值函式
- 關於建構函式與解構函式的分享函式
- JS資料結構-棧-練習JS資料結構
- ORACLE單行函式與多行函式之二:字元函式示例Oracle函式字元
- [C練習]my_atoi函式實現函式
- 建構函式與普通函式的區別函式
- Objective-C學習筆記---建構函式和解構函式Object筆記函式
- if-else擴充套件結構練習套件
- SQL時間函式總結(二)SQL函式
- 建構函式與解構函式是否可以丟擲異常函式
- Linux字元驅動程式的基本結構與函式Linux字元函式
- C++語言之結構體、類、建構函式、拷貝建構函式C++結構體函式
- oracle 體系結構-控制檔案(二)Oracle
- JS 建構函式與類JS函式
- python3 的 round 函式的 練習Python函式
- MYSQL練習二MySql