循环中的基本运算问题

62 阅读1分钟

一.利用循环来运算加减

1.1+2+3+.....+19
 var i = 1
 var sum = 1
 while(i<=19) {
    println(i)
    sum += i
    i = i + 1
 }
2.1+1/2+1/3.....+1/19
 var sum = 0.0
 for (n <- 1 to 19) {
  sum += 1.0 / n
}
 println(f"结果: $sum%.6f")
3.计算1 - 1/2 + 1/3 - ... + 1/19
   val sum = (1 to 19).map { n =>
     // 奇数项为正,偶数项为负
     if (n % 2 == 1) 1.0 / n else -1.0 / n
   }.sum

   // 输出结果,保留6位小数
   println(f"1 - 1/2 + 1/3 - ... + 1/19 = $sum%.6f")
 }

二.判断一个数是不是素数?

//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} 不是素数")
  }
}

三.假设某人的年回报率是10%,本金1元

  1. 求第十年结束时有多少元?
 var i = 0
   var money = 1.0 // 本金
   while (i < 10){
     money = money * 1.1
   }
  i = i + 1
  println(s"第${i}年结束时,钱数为${money}")
}
  1. 多少年后能超过1000?
 var i = 0
  var money = 1.0 // 本金
  while (money <= 1000) {
    money = money * 1.1

    i = i + 1
    println(s"第${i}年结束时,钱数为${money}")
  }
  println(i)
}

四.输出1-10

for (i <- 1 to 10){
  println(i)
}

五.by 的用法

// by:步长,循序变量每次增加的值。默认为1
 // for(i <-1 to 100 by 1)  <==>  for (i <- 1 to 100)
 var sum = 0
 for (i <- 1 to 100 by 2){
   println(i)
   sum += i
 }
 println(sum)
 }