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