Scala | 阶段一 过关练习

38 阅读1分钟

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

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

  while (true) {
    print("请输入你要判断的年份:")
    var 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

奇数项为正,偶数项为负

% : 去余数

def f(n:Int) : Double = {
  if (n==1) {
    1.0
  } else {
    val ass = if (n % 2 == 1) 1 else -1
    f(n-1) + ass.toDouble/n
  }
}

def main(args: Array[String]): Unit = {
  val rst = f(100)
  println(rst)
}

案例三: 返回一个函数 用来求斐波那契数列的前20项 其中f(1) = f(2) =1 f(n) = f(n-1) + f(n-2)

if(n == 1){
    1
  } else if(n == 2){
    1
  } else {
    f(n -1) + f(n -2)
  }
}

def main(args: Array[String]): Unit = {
  val rst = f(20)
  println(rst)
}

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

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) ) {
        println(s"$year 是闰年")
        break
      } else {
        println(s"$year 不是闰年")
      }
    }
  }
  println("欢迎下次光临~")
}

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

def main(args: Array[String]): Unit = {
  val arr = Array(100,51,55,67,59,89)

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


  //    for(i <- arr1) {
  //      println(i)
  //    }
  arr1.foreach(println)
}