案例(一)
回答以下问题
问题1:1 + 1/2 + 1/3 + 1/4 + 1/5 + ... + 1/19
问题2:计算1 - 1/2 + 1/3 - 1/4 + ... + 1/19
object base22 {
def main(args: Array[String]): Unit = {
// 已知:1 + 2 + 3 + 4 + ..... + 19 = 190
var i = 1
var sum = 0
while(i <= 19){
println(i)
sum += i // sum = sum + i
i = i + 1
}
println(s"sum:${sum}")
// 问题1:1 + 1/2 + 1/3 + 1/4 + 1/5 + ... + 1/19
var sum1 = 0.0
for (i <- 1 to 19) {
sum1 += 1.0 / i
}
println(f"问题1的和为: $sum1%.6f")
// 问题2:计算1 - 1/2 + 1/3 - 1/4 + ... + 1/19
var sum2 = 0.0
for (i <- 1 to 19) {
if (i % 2 == 1) {
sum2 += 1.0 / i
} else {
sum2 -= 1.0 / i
}
}
println(f"问题2的和为: $sum2%.6f")
}
}
结果如图:
(二)案例2
从键盘上输入一个数,判断它是不是素数?
判断一个数,是不是素数?
素数:只有1和它本身能被整除。
2,3,5,7,11,13,......,97
思路:
-
假设它是一个素数。
-
循环 使用 2,3,4,...num-1 去除 num,如果能整除,说明 num 不是素数
-
循环结束,输出结果
object base23 {
def main(args: Array[String]): Unit = {
var num = 121
var isPrime = true // 假设是素数
var i = 2
while(i <= num -1){
if(num % i == 0){
isPrime = false
println(s"${num} 能被 ${i} 整除")
}
i += 1
}
if(isPrime){
println(s"${num} 是素数")
} else {
println(s"${num} 不是素数")
}
}
}
结果如图
(三)案例3
假设某人的年化投资回报率是10%。也就是说投入1元之后:
第一年结束时有1.1元,计算过程是:1 *(1+10%) = 1.1
第二年结束时有 1.21元,计算过程是:1.1*(1+10%) = 1.21元,
第二年结束时有1.331元,计算过程是:1.21*(1+10%) = 1.331元,
编写程序:
1、求它第10年结束时有多少元?
2、多少年之后能超过1000元?
object base24 {
def main(args: Array[String]): Unit = {
var i = 0
var money = 1.0 // 本金
while(i < 10) {
while(money <= 1000) {
money = money * 1.1
println(s"第${i}年结束时,钱数为${money}")
i += 1
}
}
println(i)
}
}
(四)案例4
计算并输出 1 到 100 之间所有奇数的和,同时展示这些奇数
object base25 {
def main(args: Array[String]): Unit = {
var i = 1
// while(i<=10){
// println(i)//
// i += 1// }
// for(i <- 1 to 10 )
// {println(i)}
// }
//by: 步长:循环变量每次增加的值。默认就是 1
// for (i <- 1 to 100 by 1) <====> for ( i <- 1 to 100 )
var sum = 0
for (i <- 1 to 100 by 2 ){
println (i)
sum += i
}
println (sum)
}
}
结果如图: