循环练习题

37 阅读1分钟

1、求数列的和,求s= 1 - 1/2 + 1/3 - 1/4  + 1/5 .... +1/19的值。

object Main {
	def main(args: Array[String]) = {
		var sum:Double=0 // sum=0;sum默认是Int
		var i=1
		while(i<=19){
		    // 如果i是奇数就是-
		    if (i%2==1){
		    sum+=1.0/i
		    }else{
		    // 否则,就是+
		    sum-=1.0/i
		    }
		    i +=1
		}
		println(s"sum=${sum}")
	}

2、从键盘上输入一个数,判断它是不是素数?

  var num=scala.io.StdIn.readInt()
        var isPrime:Boolean=true
        
        var i=2
        while(i<=num-1){
            if(num%i==0){
                isPrime=false
            }
            i+=1
        }
        if(isPrime){
            println(s"$num 是素数")
        }else{
            println(s"$num 不是素数")
        }

3、小球从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元

1、求它第10年结束时有多少元?

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

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

  object Main {
  def main(args: Array[String]) = {
  	var i=0
      var money=1.0
      while(money<=1000){
          money=money*1.1
          i+=1
          println(s"$i 年之后,有$money 元")
      }
      println(s"$i 年之后,总的钱变成了:$money 元")
  }
}