快学Scala习题解答—第二章 控制结构和函数
3 控制结构和函数
3.1 一个数字如果为正数,则它的signum为1;如果是负数,则signum为-1;如果为0,则signum为0.编写一个函数来计算这个值
简单的逻辑判断
def signum(num:Int){if(num>0)print(1)else if(num<0)print(-1)else print(0)}BigInt(10).signum
scala> val t = {}t: Unit = ()scala> var y=4;y: Int = 4scala> var x={}x: Unit = ()scala> x=y=7x: Unit = ()for(i <- 0 to 10 reverse)print(i)
def countdown(n:Int){ 0 to n reverse foreach print}scala> var t:Long = 1t: Long = 1scala> for(i <- "Hello"){ | t = t * i.toLong | }scala> tres57: Long = 9415087488scala> var t:Long = 1t: Long = 1scala> "Hello".foreach(t *= _.toLong)scala> tres59: Long = 9415087488
def product(s:String):Long={ var t:Long = 1 for(i <- s){ t *= i.toLong } t}def product(s:String):Long={ if(s.length == 1) return s.charAt(0).toLong else s.take(1).charAt(0).toLong * product(s.drop(1))}def mi(x:Double,n:Int):Double={ if(n == 0) 1 else if (n > 0 && n%2 == 0) mi(x,n/2) * mi(x,n/2) else if(n>0 && n%2 == 1) x * mi(x,n-1) else 1/mi(x,-n)}