1. 程式人生 > >scala小練習一

scala小練習一

(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"
  }

這裡寫圖片描述