练习

38 阅读1分钟
test1
object text1 {
  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)
  }
}
test2
object text2 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") 
}
test3
object text3{
    /** 
    递归函数:自己调用自己的函数 
    适合用来解决一类问题 
    可以被分解为类似子问题 
    当分解到足够小的时候,问题可以直接求解
    */ 
    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) 
    } 
}
test4
import scala.util.control.Breaks.{break, breakable} 
object text4 { 
  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 text5 { 
  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") 
  } 
}