练习

37 阅读1分钟
  1. 编写一个函数,它的入参是一个表示年份的整数,返回值是一个 bool 值,判断这个年份是否是闰年。
object lianxi1 {
  def main(args: Array[String]): Unit = {
    println("请输入一个年份:")
    var year = scala.io.StdIn.readInt()

    var result:Boolean = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)

    if(result) {
      println(true) // 闰年
    } else {
      println(false) // 不是闰年
    }
  }
}
  1. 编写一个函数,用来求 f (100) 的值。其中 f (n)=1 -1/2 + 1/3 -1/4 + ... 1/n
object lianxi2 {
  def f(n: Int): Double = {
    if (n == 1) {
      1
    } else if (n % 2 == 1) {
      f(n-1)+1.0/n
    } else {
      f(n-1)-1.0/n
    }
  }

  def main(args: Array[String]): Unit = {
    val s = f(100)
    println(s)
  }
}
  1. 编写一个函数,用来求斐波那契数列的前 20 项。其中 f (1)=f (2)=1,f (n) = f (n-1) + f (n-2)。
object lianxi3 {
    def f(n: Int): Int = {
      if (n == 1) {
        1
      } else if (n == 2) {
        1
      } else {
        f(n - 1) + f(n - 2)
      }
    }

  def main(args: Array[String]): Unit = {
    val s = f(20)
    println(s)
  }
}
  1. 编写一个函数,允许用户输入一个整数年份,如果用户输入的是闰年就停止输入,否则就一直提示用户输入。
import scala.util.control.Breaks.{break, breakable}

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

        if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){
          break
        }

        if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){
          println(s"${year} 是闰年")
        } else {
          println(s"${year} 不是闰年")
        }
      }
    }
    println("为闰年,系统退出")
  }
}
  1. 对成绩 (100,51,55,67,59,89) 进行处理,如果分数在 56-59 之间,就设置为 60 分,得到的新成绩为 (100,51,55,67,60,89)。