循环运算

25 阅读1分钟

1.求1-1/2-1/3...-1/19

object base22 {
  def main(args: Array[String]): Unit = {
    var i=2
    var sum=1.0
//    while (i<20){
//      sum+=i
//      i+=1
//    }
//    println(sum)
    while (i<20){
      sum-=1.0/i
      i+=1
    }
    println(sum)
  }
}

2.求1-1/2+1/3-1/4+...+1/19

object base22 {
  def main(args: Array[String]): Unit = {
     var result = 0.0
  var i = 1
  
  while (i <= 19) {
    // 奇数项为正,偶数项为负
    if (i % 2 == 1) {
      result += 1.0 / i
    } else {
      result -= 1.0 / i
    }
    i += 1
  }
  
  }
}

判断一个数是否为素数

object base23 {
  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=9
    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.求它第10年结束时有多少元? 2.多少年之后能超过1000元?

object base24 {
  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}")
    }
  }
}
object base24 {
  def main(args: Array[String]): Unit = {
    var i=0
    var money=1.0
//    while (i<10){
    while (money<=1000) {
      money=money*1.1
    i=i+1
      println(s"第${i}年结束时,钱数为${money}")
    }
    println(i)
  }
}

for 循环

by:步长,循序变量每次增加的量。默认就是1. for (i<- 1 to 100 by 1) <=====>for(i<- 1 to 100)

object base25 {
  def main(args: Array[String]): Unit = {
    var sum=0
    for (i <- 1 to 100 by 2){
      println(i)
      sum+=i
    }
    println(sum)
  }
}