您的位置:首页 > 其它

scala小练习一

2017-06-04 15:12 323 查看
(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"
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息