scala 阶段 1 过关练习

22 阅读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

object excise3 {

  def main(args: Array[String]): Unit = {
    //1-1/2+1/3-1/4+....+1/100
    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)。

object excise2 {

    /**
     * 求斐波那契数列的第20项
     *
     * f(1)=1
     * f(2)=2
     *
     * 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 excise1 {


  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)) {
          break
        }

        if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
          println(s"$year 是闰年")
        } else {
          println(s"$year 不是闰年")
        }
      }
    }

  }
}

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

object excise5 {

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

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


        // 定义一个数组
        val arr=Array(100,51,55,67,59,89)
        var arr1=arr.map(x=> if(x>=56 && x<=59)60 else x)
        arr1.foreach(println)
        //    }

  }
}