Scala 循环练习

82 阅读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/4+...+1/19
//(3)1-1/2+1/3-1/4+1/5...+1/19
var sum:Double=0
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}")

二. 输入一个数,判断它是不是素数

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

三. 100米高处自由落下,着地后又弹回高度的一半再次落下,如此重复。问经过多少次落地后,小球弹起的高度才会低于0.5米

  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米---")
}

四. 假设某人的年化投资回报率是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元

4.1. 第十年结束时有多少元?

def main(args: Array[String]): Unit = {
  var i = 0
  var money:Double = 1.8
  while (i<10){
    //每一年的钱 都在去年的基础上增加10% === 乘以1.1
    money = money *1.1
    i += 1
    println(s"$i 年之后 有$money 元")
  }
  println(s"10年之后 总的钱变成了:$money")
}

4.2. 多少年之后能超过1000元?

def main(args: Array[String]): Unit = {
  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")
}