scala阶段1过关练习

26 阅读1分钟

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

sql
 体验AI代码助手
 代码解读
复制代码

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 不是闰年")
  }

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

scala
 体验AI代码助手
 代码解读
复制代码
// 求s= 1 - 1/2 + 1/3 - 1/4  + 1/5 .... +1/20的值


def main(args: Array[String]): Unit = {
  var sum:Double = 0 // 不然写成 sum = 0; sum默认是Int
  var i = 1
  while(i <= 20) {

    if(i%2 == 1){

       sum += 1.0 / i
    } else { // 否则,就是 -
      sum -= 1.0 / i
    }
    i += 1
  }
  println(s"sum=${sum}")

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

scala
 体验AI代码助手
 代码解读
复制代码
def fib(n:Int): Int = {
 if (n == 0) {
   0
 } else if (n == 1) {
   1
 } else {
   fib(n-1) + fib(n-2)
 }
}
def main(args: Array[String]): Unit = {
  var sum = 0
  for (i <- 1 to 20) {
    val current = fib(i)
    sum += current
  }
  println(s"前20项:${sum}")

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

scala
 体验AI代码助手
 代码解读
复制代码
def isLeapYear(year: Int): Boolean = {
  (year % 4 == 0 && year % 100 != 0) || year % 400 == 0
}

def main(args: Array[String]): Unit = {
  var year: Int = 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)

kotlin
 体验AI代码助手
 代码解读
复制代码
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("(", ", ", ")")}")
}