scala练习

43 阅读1分钟

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

def isLeapYear(year: Int): Boolean = {
  (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
}
def main(args: Array[String]): Unit = {
  println(isLeapYear(2020)) // 输出true
  println(isLeapYear(2021)) // 输出false
}

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

def calculateF(n: Int): Double = {
    (1 to n).map(i => if (i % 2 == 1) 1.0 / i else -1.0 / i).sum
  }
  def main(args: Array[String]): Unit = {
    println(calculateF(100))
  }
  1. 编 写 一 个 函 数 , 用 来 求 斐 波 那 契 数 列 的 前 20 项 。 其 中 f(1)=f(2)=1,f(n)=f(n-1)+f(n-2)
def fibonacci(n: Int): List[Int] = {
  if (n == 1) List(1)
  else if (n == 2) List(1, 1)
  else {
    val prev = fibonacci(n - 1)
    prev :+ prev(n - 2) + prev(n - 3)
  }
}
def main(args: Array[String]): Unit = {
  println(fibonacci(20))
}

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

import scala.io.StdIn

object 练习4 {
  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")
  }

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

def main(args: Array[String]): Unit = {
  val scores = List(100, 51, 55, 67, 59, 89)
  val newScores = scores.map(score => if (score >= 56 && score <= 59) 60 else score)
  println(newScores)
}