while的练习

51 阅读1分钟
  • 计算1-1/2+1/3-1/4+......+1/19的和
object Main {
	def main(args: Array[String]) = {
	    /**
	     * 1-1/2+1/3-1/4+......+1/19
	     * */
	    var sum:Double = 0
	    var i = 1
	    while(i <= 19) {
	        if (i%2 == 0) {
	        sum += 1.0/i
	        }else{
	            sum -= 1.0/i
	        }
	        i += 1
	    }
		println(s"sum=${sum}")
	}
}
  • 判断一个数num是不是素数
object Main {
	def main(args: Array[String]) = {
	    var num = scala.io.StdIn.readInt()
	    
	    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的次数
object Main {
	def main(args: Array[String]) = {
	    
	    var i = 0 //落地次数
	    
	    var high:Double = 100 //初始为100米
	    while(high >= 0.5){
	        high = high / 2
	        i+=1 
	        println(s"经过${i}次落地后,小球的高度是${high}")
	    }
	    
		println(s"--经过${i}次落地后,小球的高度是${high},小于0.5米的--")
	}
}
  • 假设某人的年化投资回报率是10%,投入1元
  1. 求它第10年结束时有多少元?
object Main {
	def main(args: Array[String]) = {
	    var i = 0
	    var money = 1.0
	    while(i<10){
	        money = money*1.1 
	        i+=1
	        println(s"$i 年之后,有 $money 元")
	    }
		println(s"10年之后,总的钱变成了:$money")
	}
}

  1. 多少年之后能超过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 元")
	}
}