练习题

50 阅读1分钟
object base56 {
  //编写一个函数,用来求斐波那契数列的前20项。其中f(1)=f(2)=1,f(n)=f(n-1)+f(n-2)
  def fibonacci(n: Int): Int = {
    if (n == 0) {
      0 // 起始条件
    } else if (n == 1) {
      1 // 起始条件
    } else {
      fibonacci(n - 1) + fibonacci(n - 2) // 递归规则
    }
  }
  def main(args: Array[String]): Unit = {
    val s = fibonacci(20)
    println(s)
  }
}
object base57 {
  //编写一个函数,允许用户输入一个整数年份,如果用户输入的是闰年就停止输入,否则就一直提示用户输入
  import scala.io.StdIn
  // 判断闰年的函数
  def isLeapYear(year: Int): Boolean = {
    (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
  }

  def main(args: Array[String]): Unit = {
    var year = 0
    do {
      print("请输入年份:")
      year = StdIn.readInt()
    } while (!isLeapYear(year))
    println(s"您输入的闰年是:$year")

  }
}
object base58 {
    //编写一个函数,用来求f(100)的值。其中f(n)=1-1/2+1/3-1/4....1/n
    def main(args: Array[String]): Unit = {
      var sum:Double = 0
      var  i = 1
      while (i<=100) {
        if (i % 2 == 1) {
          sum = sum + 1.0 / i // 1/3(奇数)
        } else {
          sum = sum - 1.0 / i // 1/2(偶数)
        }
        i += 1
      }
      println(s"sum=${sum}")
    }

}
object base59 {
  //编写一个函数,它的入参是一个表示年份的整数,返回值是一个bool值,判断这个年份是否为闰年
  def main(args: Array[String]): Unit = {
    val year:Int = scala.io.StdIn.readInt()

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

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

  def main(args: Array[String]): Unit = {
    // 原始成绩数组
    val yuanshuju = Array(100, 51, 55, 67, 59, 89)

    // 处理成绩
    val chulihou = yuanshuju.map { score =>
      if (score >= 56 && score <= 59) 60 else score
    }

    println(s"原始成绩:${yuanshuju.mkString("(", ", ", ")")}")
    println(s"处理后成绩:${chulihou.mkString("(", ", ", ")")}")
  }

}