1. 编写一个函数,它的入参是一个表示年份的整数,返回值是一个 bool 值,判断这个年份是否是闰年。
def isPrimeyear(year: Int): Boolean = {
(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
}
def main(args: Array[String]): Unit = {
val r1 = isPrimeyear(2025)
println(r1)
}
结果如图:
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 a = 1
while(a <= 100) {
if(a%2 == 1){
sum += 1.0 / a
} else {
sum -= 1.0 / a
}
a += 1
}
println(s"f (100)=1 - 1/2 + 1/3 - 1/4 + 1/5.... + 1/100 = ${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 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 不是一个闰年,请重新输入")
}
}
}
}
}
结果如图:
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)
val arr1 = arr.map(x => if (x >=56 && x<= 59) 60 else x )
// 用for循环输出
for (i <- arr1) {
println(i)
}
}
结果如图: