循环练习题

60 阅读1分钟

求数列的和

求s= 1 - 1/2 + 1/3 - 1/4  + 1/5 .... +1/19的值

// 1 + 2 + 3 + 4...... + 19 = 190
object Sc16 {
  def main(args: Array[String]): Unit = {
  var i = 1
  var sum = 0
  while(i <= 19) {
    println(i)
    sum += i
    i = i + 1
  }
    println(s"${sum}")
  }
}

判断是否素数

1.只能被1和它本身整除的数是素数。2 3 5 7 11 13 17 19...

2.可以从2开始到n-1为止,依次去除这个数n,如果能被除,就不是素数。

3.设置一个变量,初始值为true,表示它是一个素数,在循环内部,如果有整除的情况,就把它设置为false。

4.循环结束之后,检查变量的值,看看是不是素数

object Sc17 {
  def main(args: Array[String]): Unit = {
    var num = 11
    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年结束时有多少元?

object Sc18 {
  def main(args: Array[String]): Unit = {
    var i =0
    var money = 1.0
    while(i < 10){
      money = money * 1.1
      i = i + 1
      println(s"第${i}年结束时,钱数为${money}")
    }
  }
}

2、多少年之后能超过1000元?

object Sc19 {
  def main(args: Array[String]): Unit = {
    var i = 1.0
    val rate = 1.1
    var n = 0
    while (i <= 1000) {
      i *= rate
      n += 1
    }
    println(s"超过1000元需要 $n 年")
  }
}