练习(1)

38 阅读1分钟

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

//编写一个函数,它的入参是一个表示年份的整数,返回值是一个 bool 值,判断这个年份是否是闰年。
object test1 {
    def main(args: Array[String]): Unit = {
      print("请输入年份:")
      val year = scala.io.StdIn.readInt()
      val result:Boolean = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
      if (result) {
        println(s"$year 是闰年")
      } else {
        println(s"$year 不是闰年")
      }
    }
}

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

//编写一个函数,用来求 f (100) 的值。其中 f (n)=1 - 1/2 + 1/3 - 1/4 + … + 1/n
object test2 {
  def main(args: Array[String]): Unit = {
    var sum = 0.0
    for (i <- 1 to 100) {
      if (i % 2 == 1) {
        sum += 1.0 / i
      } else {
        sum -= 1.0 / i
      }
    }
    println(f" f (100)和为: $sum%.6f")
  }
}

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

//编写一个函数,用来求斐波那契数列的前 20 项。其中 f (1)=f (2)=1,f (n) = f (n-1) + f (n-2)。
object test3 {
  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)

  }
}

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

//编写一个函数,允许用户输入一个整数年份,如果用户输入的是闰年就停止输入,否则就一直提示用户输入。
import scala.util.control.Breaks.{break, breakable}
object test4 {
   def main(args: Array[String]): Unit = {
     breakable{
       while(true){
         print("请输入一个年份:")
         val year = scala.io.StdIn.readInt()
         if(year%400==0 || (year%4==0 && year%100!=0)){
           println(s"$year 是一个闰年")
           break
         }else{
           println(s"$year 不是一个闰年")

         }
       }
     }
     println("欢迎下次使用")
   }
}

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

//对成绩 (100,51,55,56,89) 进行处理,如果分数在 56-59 之间,
// 就设置为 60 分,得到的新成绩为 (100,51,55,67,60,89)。
object test5 {
    def main(args: Array[String]): Unit = {

      val arr = Array(100,51,55,56,89)

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


      for (i <- arr1) {
        println(i)
      }
    }
  }

image.png