本文主要是介绍快学scala习题第二章答案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2.1 一个数字如果为正数,则它的signum为1;如果是负数,则signum为-1;如果为0,则signum为0.编写一个函数来计算这个值
object demo1 {def main(args: Array[String]): Unit = {//var signum:Int=0val signum=(n:Int)=>{if(n>0){1}else if(n<0){-1}else{0}}println(signum(0))}
}
2.2 一个空的块表达式{}的值是什么?类型是什么? ()unit
def checkEmptyBlockType { println({}); println({}.getClass()) }
2.3 指出在Scala中何种情况下赋值语句x=y=1是合法的。
def checkAssignLegal {var x: Unit = ()var y = 1x = y = 1}
2.4 针对下列Java循环编写一个Scala版本:
- for(int i=10;i>=0;i–)System.out.println(i);
object demo4 {def main(args: Array[String]): Unit = {for(i<- Range(10,0,-1)){println(i)}}
}
或者是
for(i<- 1 to 10 reverse){println(i)
}
2.5 编写一个for循环,计算字符串中所有字母的Unicode代码的乘积。
def sum(s:String)={var sum:Long=1for(i<-"Hello"){sum=sum*i.toLong}sum
}
2.6 编写一个for循环,计算字符串中所有字母的Unicode代码的乘积。
- 举例来说,"Hello"中所有字符串的乘积为9415087488L
def calculateCharsUnicodeProduct(s: String) = {var res: Long = 1s foreach { res *= _.toLong }res}
2.9 把前一个练习中的函数改成递归函数
def product2(s:String):Long={if(s.length==1){s.charAt(0).toLong}else{//s.take(1)取出字符串然后取出第一个字符//s.drop(1)除了第一个剩下的字符串s.take(1).charAt(0).toLong * product2(s.drop(1))}
}
2.10 编写函数计算xn,其中n是整数,使用如下的递归定义:
def question10(x: Int, n: Int): BigInt = n match {case 0 => 1case n if n < 0 => 1 / question10(x, -n)case n if n % 2 == 0 => question10(x, n / 2) pow 2case n if n % 2 == 1 => x * question10(x, n - 1)}
如果大佬需要刷leetcode 可以关注这个微信公众号后期会更新
这篇关于快学scala习题第二章答案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!