scala小练习一

来源:互联网 发布:广西广电网络机顶盒 编辑:程序博客网 时间:2024/04/30 01:13

(1)在Scala REPL中,计算3的平方根,然后再对该值求平方。现在,这个结果与3相差多少?
这里写图片描述

(2)在REPL 中求 2的 1024 次幂。

这里写图片描述

(3)获取字符串的首字母和尾字母。

这里写图片描述

(4)定义signum 函数,接收一个Int 类型的变量,如果这个变量为正数则返回1,为负数则返回-1,为零则返回0。

def signum(a:Int): Int ={    if(a>0)      return 1    else if(a<0)      return -1    else      return 0  }

这里写图片描述

(5)针对java 循环编写一个scala 版
for(int i = 1; i >= 0 ; i –) System.out.println(i);

    for(a<-  0 to 1 reverse){      println(a)    }

这里写图片描述

(6)编写一个过程 countDown(n: Int) 打印从n 到0 的数字

def countDoun(n:Int){    val a=0 to n    a.reverse.foreach(i => println(i))  }

这里写图片描述
(7)编写一个for循环,计算字符串中所有字母的Unicode代码的乘积。举例来说,”Hello”中所有字符串的乘
积为9415087488L

def count(str:String): Long ={    var res:Long=1    for(i<-str){      res=res*i    }    return res  }

这里写图片描述
(8)彩票小程序,参考java 版的彩票小程序,编写 Scala 版本的Lottery,实现功能如下:
① 输入7个 1~35 的数字(用户购买彩票)
② 随机生成7个数字,系统自动兑奖并返回中奖结果

def buy(user:Array[Int]): Array[Int] ={    println("请输入1~35之间的七个整数")    var a=0    while(a<7){      val num=readInt()      if(num>0&&num<=35){        var flag=false        for(b<-user){          if(b==num){            println("输入重复,请重新输入")            flag=true          }        }        if(flag==false){          user(a)=num          a+=1        }      }      else        println("输入数据越界请重新输入")    }    return user  }  def printuser(user:Array[Int]): Unit ={    println("用户购买号码为")    user.foreach(println)  }  def kaijiang(): Array[Int] ={    var ran=1 to 35 toArray    var cp=new Array[Int](7)    var a=0      while(a<7){        val num=(math.random*35+1).toInt  //val num=new Random().nextInt(36)        var flag=false        for(b<-cp){          if(b==num)            flag=true        }        if(flag==false){          cp(a)=num          a+=1        }      }    return cp  }  def printcp(cp:Array[Int]): Unit ={    println("系统开奖号码为")    cp.foreach(println)  }  def duijiang(user:Array[Int],cp:Array[Int]): Int ={    println("用户中奖号码:")    var winning=user.filter(cp.contains(_))    winning.foreach(println)    var level:Int=winning.length    return level  }  def fajiang(level:Int): Unit ={    level match {      case 1=>println("7等奖")      case 2=>println("6等奖")      case 3=>println("5等奖")      case 4=>println("4等奖")      case 5=>println("3等奖")      case 6=>println("2等奖")      case 7=>println("1等奖")      case 0=>println("哎……")    }  }  def main(args: Array[String]): Unit = {    var user:Array[Int]=new Array[Int](7)    var cp:Array[Int]=new Array[Int](7)    var level:Int=0    user=buy(user)    printuser(user)    cp=kaijiang()    printcp(cp)    level=duijiang(user,cp)    fajiang(level)  }

这里写图片描述
(9) 用体重和身高计算BMI值

def bmiStatus(weight:Double,height:Double):String={    val res=weight/(height*height)    println(res)    if(res<18.5)      return "under Weight"    else if(res>24.0)      return "over weight"    else      return "Normal weight"  }

这里写图片描述