scala阶段一过关练习

31 阅读1分钟

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

while (true){
  println("请输入你要判断的年份:")
  var year = scala.io.StdIn.readInt()
  if (year % 400 == 0 || year % 4 == 0 && year %100 != 0){
    println(s"${year } 是闰年")
  } else {
    println(s"${year} 是平年")
  }
}

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

var sum:Double = 0
var i = 1
while (i <= 100){
  if(i % 2 != 0){
    sum += 1.0 / i
  } else {
    sum -= 1.0 / i
  }
  i += 1
}
println(s"f(100)=${sum}")

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

var a = 1
var b = 1
println(s"第1项是;${a}")
println(s"第2项是;${b}")
for (i <- 3 to 20){
  var c = a + b
  println(s"第${i}项是;${c}")
  a = b
  b = c
}

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

breakable{
  while (true){
    println("请输入年份:")
    var year = scala.io.StdIn.readInt()
    if (year % 400 == 0 || year % 4 == 0 && year %100 != 0){
      println(s"${year } 是闰年")
      break()
    } else {
      println(s"${year} 是平年")
    }
  }
}

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

val a = Array(100,51,55,67,59,89)
val b = a.map(x => if(x >= 56 && x <= 59) 60 else x)
b.foreach(println)