while循环2

25 阅读1分钟

练习题

1.

求1 - 1/2 + 1/3 - 1/4 + 1/5 - ... + 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("问题2结果: " + sum2)

2.

判断一个数,是不是素数

object Base22 {
  def main(args: Array[String]): Unit = {
    //判断一个数,是不是素数?
    //素数,只有1和它本身能被整除
    //2, 3, 5, 7, 11, 13, ...... , 97
    //思路
    //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} 不是素数")
    }
  }
}

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元?

 var i = 0
 var money = 1.0
 while(i < 10){
   money = money * 1.1
   i = i + 1
   println(s"第${i}年结束时,钱数为${money}")
 }
var i = 0
var money = 1.0
while(money <= 1000){
  money = money * 1.1
  i = i + 1
  println(s"第${i}年结束时,钱数为${money}")
}
println(i)