练习

53 阅读1分钟

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

object t1 {
  def main(args: Array[String]): Unit = {
    //
    //
    while(true){
      //请输入一个年份,判断是否闰年
      print("请输入一个年份:")
      val 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 t2 {
  def main(args: Array[String]): Unit = {
      var sum = 0.0
      for (i <- 1 to 100) {
        if (i % 2 == 1) {
          sum += 1.0 / i
        } else {
          sum -= 1.0 / i
        }
      }
      println(f"和为: $sum%.6f")
    }

}

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

object t3 {
    // 斐波那契数列
    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) // 89
      println(rst)
    }
}

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

import scala.util.control.Breaks.{break, breakable}

object t4 {
  def main(args: Array[String]): Unit = {
    //
    breakable {
      //不停地判断新用户输入的年份是否闰年。当用户输入的时候,结束程序
      while (true) {
        //请输入一个年份,判断是否闰年
        print("请输入一个年份(输入0可结束程序):")
        val year = scala.io.StdIn.readInt()
        if(year == 0){
          break
        }

        if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
          println(s"$year 是一个闰年")
        } else {
          println(s"$year 不是一个闰年")
        }
      }
    }
    println("欢迎下次使用")
  }
}

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

object t5 {
  def main(args: Array[String]): Unit = {

    val arr = List(100, 51, 55, 67, 59, 89)

    val arr1 = arr.map { score =>
      if (score >= 56 && score <= 59) 60 else score
    }


    println(s"原始成绩:$arr")
    println(s"处理后成绩:$arr1")
  }

}