scala阶段1练习

57 阅读1分钟

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

2.编写一个函数,用来求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 += 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)。

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

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

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

import scala.util.control.Breaks.{break, breakable}

object excise4 {

  def main(args: Array[String]): Unit = {
    breakable{
      while(true){
        print("请你输入要判断的年份:")
        var year=scala.io.StdIn.readInt()

        if(year == year%400==0||(year%4==0 && year%100!=0)){

        }

        if(year%400==0||(year%4==0 && year%100!=0)){
          println(s"$year 是闰年")
          println("结束进程")
          break()
        }else {
          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 arr = Array(100,51,55,67,59,89)
  
  var arr1=arr.map(x => if(x <= 56) x else if(x>56 && x<=59) 60 else x)

  arr1.foreach(println)

}