一. 案例-求数列的和
已知: 1 + 2 + 3 + 4...... + 19 = 190
var i = 1
var sum = 0
while (i <= 19){
sum += i //sum = sum + 1
i = i + 1
}
println(s"1 + 2 + 3 + 4...... + 19 = ${sum}")
结果如图:
问题1: 1 + 1/2 + 1/3 + 1/4 + 1/5.... + 1/19
var sum1: Double = 0.0
var a = 1
while (a <= 19) {
sum1 += 1.0 / a
a += 1
}
println(s"1 + 1/2 + 1/3 + ... + 1/19 = ${sum1}")
结果如图:
问题2: 1 - 1/2 + 1/3 - 1/4 + 1/5.... + 1/19
var sum2:Double = 0
var b = 1
while(b <= 19) {
// 如果i是奇数就是 +
if(b%2 == 1){
sum2 += 1.0 / b
} else { // 否则,就是 -
sum2 -= 1.0 / b
}
b += 1
}
println(s"1 - 1/2 + 1/3 - 1/4 + 1/5.... + 1/19=${sum2}")
结果如图:
二. 案例-判断是否素数
素数,只能 1 和它本身能整除。
思路: 1、假设它是一个素数。
2、循环
使用 2,3,4,...,num-1 去除 num,如果能整除,说明 num 不是素数
3、循环结束,输出结果
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} 不是素数 ")
}
结果如图:
三. 案例-复利公式
题目描述:假设某人的年化投资回报率是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元?
// 1、求它第10年结束时有多少元?
var i = 0
var money = 1.0 // 本金
while (i < 10){
money = money + 1.1
i = i + 1
println(s"第${i}年结束时,钱数为${money}")
}
// 2、多少年之后能超过1000元?
while (money <= 1000){
money = money * 1.1
i = i + 1
println(s"第${i}年结束时,钱数为${money}")
}
println(i)
结果如图: