练习

33 阅读1分钟
object Baselx01 {
  def main(args: Array[String]): Unit = {
    println(s"2000年是闰年?${isLeapYear(2000)}") // true
    println(s"2010年是闰年?${isLeapYear(2010)}") // false
    println(s"2020年是闰年?${isLeapYear(2020)}") // true
  }
  def isLeapYear(year: Int): Boolean = {
    (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
  }
}
object Baselx02 extends App {
  var total: Double = 0.0

  // 使用for循环计算1 - 1/2 + 1/3 - 1/4 + ... + 1/100
  for (i <- 1 to 100) {
    if (i % 2 == 1) {
      total += 1.0 / i  // 奇数项加
    } else {
      total -= 1.0 / i  // 偶数项减
    }
  }

  // 输出结果,保留6位小数
  println(f"1 - 1/2 + 1/3 - 1/4 + ... + 1/100 = $total%.6f")
}
object Baselx03{
  /**
   递归函数:自己调用自己的函数
   适合用来解决一类问题
   可以被分解为类似子问题
   当分解到足够小的时候,问题可以直接求解
   */
  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)
  }
}
import scala.util.control.Breaks.{break, breakable}
object Baselx04 {
  def main(args: Array[String]): Unit = {
    breakable {
      while (true) {
        print("请输入一个年份(输入0可结束程序):")
        val year = scala.io.StdIn.readInt()
        if (year == 0) {
          break
        }
        if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
          println(s"year是一个闰年")
        } else {
          println(s"year不是一个闰年")
        }
      }
    }
    println("欢迎下次使用!")
  }
}
object Baselx05 {
  def main(args: Array[String]): Unit = {
    // 原始成绩列表
    val arr = List(100, 51, 55, 67, 59, 89)

    // 处理成绩:56-59分调整为60分,其他分数保持不变
    val arr1 = arr.map { score =>
      if (score >= 56 && score <= 59) 60 else score
    }

    // 输出结果
    println(s"原始成绩:$arr")
    println(s"处理后成绩:$arr1")
  }
}