案列一 :求数列的和
1 + 1/2 + 1/3 + 1/4 +... + 1/19 的和
/**
* (1) 1 + 2 + 3 + 4 +... +19
* (2) 1 + 1/2 + 1/3 + 1/4 +... + 1/19
* (3) 1 - 1/2 + 1/3 - 1/4 +... + 1/19
*/
var sum:Double = 0 // sum = 0 sum默认是Int
var i = 1
while (i <= 19) {
// 如果i是奇数就是 -
if (i % 2 == 1) {
sum = sum + 1.0 / i
} else {
// 否则 就是 -
i += 1
}
println(s"sum = ${sum}")
案列二 :从键盘上输入一个数,判断它是不是素数?
var num = scala.io.StdIn.readInt()
var isPrime:Boolean = true //假设是素数
// 从 2 到 rum-1,依次去除rum 如果有一个能整除,就说明它不是素数
var i = 2
while (i <= num - 1) {
// 如果能整除 num % i == 0 说明isPrime不是素数
if (num % 1 == 0){
isPrime = false
}
i += 1
}
if (isPrime) {
println(s"$num 是素数")
} else {
println (s"$num 不是素数")
}
案列三 :小球从100米高处自由落下,着地后又弹回高度的一半再次落下,如此重复。问经过多少次落地后,小球弹起的高度才会低于0.5米?
var i = 0 // 落地的次数
var high = 100.0 // 初始为100米
while (high >= 0.5) {
high = high / 2.0
i += 1
println(s"经过${i}次落地之后,小球的高度是${high}")
}
println(s"--经过${1}次落地之后,小球高度是${high},小于0.5米的--")
案列四 :假设某人的年化投资回报率是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元,
求它第10年结束时有多少元?
var i = 0
var money = 1.0
while (i < 10){
// 每一年的钱 都在去年的基础上增加10% === 乘以1.1
money = money * 1.1
i += 1
println(s"${i} 年之后,有$money 元")
}
println(s"${10} 年之后,总的钱变成了:$money 元")
多少年之后能超过1000元?
var i = 0
var money = 1.0
while (money < 1000){
// 每一年的钱 都在去年的基础上增加10% === 乘以1.1
money = money * 1.1
i += 1
println(s"${i} 年之后,有$money 元")
}
println(s"${i} 年之后,总的钱变成了:$money 元")