1..编写一个函数,它的入参是一个表示年份的证书,返回值是一个bool值,判断是否是闰年
//1.编写一个函数,它的入参是一个表示年份的证书,返回值是一个bool值,判断是否是闰年
print("请输入一个年份:")
val year: Int = 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 不是闰年")
}
2.编写一个函数,用来求f(100)的值。其中f(n)=1-1/2+1/3-1/4+ ... 1/n
// 1.定义函数计算f(n) = 1 - 1/2 + 1/3 - 1/4 + ... ± 1/n
def calculateF(n: Int): Double = {
var sum = 0.0 // 使用Double类型存储结果,避免整数除法精度问题
for (i <- 1 to n) {
// 奇数项加1/i,偶数项减1/i
if (i % 2 == 1) {
sum += 1.0 / i
} else {
sum -= 1.0 / i
}
}
sum
}
// 计算f(100)并打印结果
val result = calculateF(100)
println(s"f(100)的结果为: $result")
3.编写一个函数,用来求斐波那契数列的前20项。其中f(1)=f(2)=1,f(n)=f(n-1)+f(n-2)。
// 1.编写一个函数,用来求斐波那契数列前20项
def fibonacci(n: Int): List[Int] = {
if (n == 1) List(1)
else if (n == 2) List(1, 1)
else {
val fibs = scala.collection.mutable.ListBuffer(1, 1)
for (i <- 2 until n) {
fibs += fibs(i - 1) + fibs(i - 2)
}
fibs.toList
}
}
val result3 = fibonacci(20)
result3.foreach(println)
4.编写一个函数,允许用户输入一个整数年份,如果用户输入的是闰年就停止输入,如果不是就一直提示用户输入
// 1.编写一个函数,允许用户输入一个整数年份,如果用户输入的是闰年就停止输入,如果不是就一直提示用户输入
while(true) {
print("请输入一个年份:")
val year = scala.io.StdIn.readInt()
if(year%400 ==0 || (year%4==0 && year%100 !=0)){
println("是闰年")
break
}else{
println("不是闰年")
}
}
5.对成绩(100,51,55,67,59,89)进行处理,如果分数在56-59之间,就设置为60分,得到的新成绩为(100,51,55,67,60,89)。
// 处理成绩:将56-59分之间的成绩设为60分
var score = Array(100, 51, 55, 67, 59, 89)
// 判断是否在56-59之间,是则返回60,否则返回原分数
var fn = (x: Int) => if (x >= 56 && x <= 59) 60 else x
val score1 = score.map(fn)
print(score1.mkString("Array(", ", ", ")"))