scala 阶段练习(一)

25 阅读1分钟

练习一:

编写一个函数,它的入参是一个表示年份的整数,返回值是一个 bool 值,判断这个年份是否是闰年。

object z45 {
    def main(args: Array[String]): Unit= {
      while(true){
        print("请输入你要判断的年份")
        var year = scala.io.StdIn.readInt()

        if(year%400 == 0 || (year%4==0 && year%100!=0)){
          println(s"$year 是闰年")
        } else {
          println(s"$year 不是闰年")
        }
      }
    }
}

练习二:

编写一个函数,用来求 f (100) 的值。其中 f (n)=1 -1/2 + 1/3 - 1/4 + … 1/n。

object z46 {
  def main(args: Array[String]) = {
    var sum:Double = 0 
    var i = 1
    while( i <= 100){
      if(i%2 == 0){
        sum += 1.0/ i
      } else{
        sum -= 1.0/ i
      }
      i += 1
    }
    println(s"sum=${sum}")
  }
}

练习三:

编写一个函数,用来求斐波那契数列的前 20 项。其中 f (1)=f (2)=1,f (n) = f (n-1) + f (n-2)。

object z47 {
  def f(n:Int):Int = {
    if(n == 1){
      1
    } else if(n == 2){
      2
    } else {
      f(n-1) + f(n-2)
    }
  }
  def main(args: Array[String]): Unit= {
    val rst = f(20)
    println(rst)
  }
}

练习四:

编写一个函数,允许用户输入一个整数年份,如果用户输入的是闰年就停止输入,否则就一直提示用户输入。

object z48 {
    def main(args: Array[String]): Unit= {
      while(true){
        print("请输入你要判断的年份")
        var year = scala.io.StdIn.readInt()

        if(year%400 == 0 || (year%4==0 && year%100!=0)){
          println(s"$year 是闰年")
        } else {
          println(s"$year 不是闰年")
        }
      }
    }
}

练习五:

对成绩 (100,51,55,67,59,89) 进行处理,如果分数在 56-59 之间,就设置为 60 分,得到的新成绩(100,51,55,67,60,89)。

import scala.util.control.Breaks.{break,breakable}
object z48 {
    def main(args: Array[String]): Unit= {
      //while 死循环
      //目标:重复 判断用户输入的年份是否闰年
      while(true){
        print("请输入你要判断的年份")
        var year = scala.io.StdIn.readInt()

        if(year%400 == 0 || (year%4==0 && year%100!=0)){
          println(s"$year 是闰年,停止输入")
          break
        } else {
          println(s"$year 不是闰年")
        }
      }
    }
}