Scala中while的练习

48 阅读2分钟

1.

代码:

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

代码:

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

2.判断是否为素数

(1):代码:

object Main {
	def main(args: Array[String]) = {
	    
	    var num = scala.io.StdIn.readInt()
	    
	    var isPeime:Boolean = false
	    //从 2 到num-1,依次去除num ,如果有一个能整除,就说明它不是素数
	    
	    var i =2
	    
	    while(i<=num -1){
	        //如果能整除 : num % i== 0,说明isPeime不是素数
	    }
	    
	    if(isPeime){
	    println(s"num =$num 是素数")
	    }else{
	        println(s"$num 不是素数")
	    }
	    
	    
	}
}

(2)判断是的代码:

object Main {
	def main(args: Array[String]) = {
	    
	    var num = scala.io.StdIn.readInt()
	    
	    var isPeime:Boolean = true
	    //从 2 到num-1,依次去除num ,如果有一个能整除,就说明它不是素数
	    
	    var i =2
	    
	    while(i<=num -1){
	        //如果能整除 : num % i== 0,说明isPeime不是素数
	        if(num % i ==0){
	            isPeime=false
	        }
	        i += 1
	    }
	    
	    if(isPeime){
	        println(s"$num 是素数")
	    } else{
	        println(s"$num 不是素数")
	    }
	}
}

3.求小球落地的高度

object Main {
	def main(args: Array[String]) = {
	    var i =0 //落地的次数
	    
	    var hight =100// 初始100米
	    while(hight >=0.5){
	        
	        hight = hight / 2
	        i+=1
	        println(s"经过${i}次落地之后,小球的高度是${hight}")
	    }
		println(s"--经过${i}次落地之后,小球的高度是${hight},小于0.5米的")
	}
}

```(最后一次落地不可能为零,所以此代码需要改进。)


```Scala
object Main {
	def main(args: Array[String]) = {
	    var i =0 //落地的次数
	    
	    var hight =100.0// 初始100米
	    while(hight >=0.5){
	        
	        hight = hight / 2.0
	        i+= 1
	        println(s"经过${i}次落地之后,小球的高度是${hight}")
	    }
		println(s"--经过${i}次落地之后,小球的高度是${hight},小于0.5米的")
	}
}
(改进后:最后一次落地为:
经过8次落地之后,小球的高度是0.390625
--经过8次落地之后,小球的高度是0.390625,小于0.5米的)

4.求年化投资问题

题目:假设某人的年化投资回报率是10%,也就是说投入1元之后: 第一年结束时有:1,1元,计算过程是:1*(1+10%)=1.1

(1)求它第10年结束时有多少钱:

object Main {
	def main(args: Array[String]) = {
		var i =1
		var money =1.0 
		while(i<=10){
		    //
		    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 年之后,总的钱变成了1000 元")
	}
}