学会循环之后,我们应该做什么?

46 阅读2分钟

编程入门

1. 变量:储存数据,数据处理。

2. 运算。

1.  算术(+ - * / %)
2.  关系(> <== !=>= <=)
3.  逻辑(&& || !)
4.  赋值(= += -=)

3. 选择结构

1.  if
2.  if else
3.  if elseif elseif else

4. 循环结构

1.  while
2.  for
3.  do... while
4.  break

5. 需要能解决的问题

(1). s = 1 - 1/2 + 1/3 - 1/4 + 1/5... +1/19 的值

代码如下:

object basic14 {
  def main(args: Array[String]): Unit = {
    var sum:Double=0
    var i=0.0
    for (i<-1 to  19){
      if(i%2==1){
        sum+=1.0/i
      }else{
        sum-=1.0/i
      }
    }


    println(s"sum=${sum}")






  }
}

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

代码如下:

object Main {
	def main(args: Array[String]) = {
		/*
     * 判断一个数num是不是素数
     */
    var num = scala.io.StdIn.readInt()

    var isPrime: Boolean = true // 假设是素数

    // 从 2 到 num-1,依次去除num,如果有一个能整除,就说明它不是素数
    var i = 2
    while (i < num - 1) {
      // 如果能整除:num % i == 0,则num不是素数
      if (num % i == 0) {
        isPrime = false // 不是素数
      }
      i += 1
    }
    if (isPrime) {
      println(s"$num 是素数")
    } else {
      println(s"$num 不是素数")
    }
  }
}


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

代码如下:

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


(4). 复利公式。题目描述:假设某人的年计划是将 1 元钱投入到公司,据已知一年结束时 1 元,计算过程是:1*(1+10%) = 1.1 元,第二年结束时 1.331 元,计算过程是:1.1*(1+10%) = 1.331 元,第三年结束时 1.21 元,计算过程是:1.1*(1+10%) = 1.21 元,第三年结束时 1.331 元,计算过程是:1.21*(1+10%) = 1.331 元。编程顺序:1、求它第 10 年结束时有多少元?2、多少年之后钱超过 1000 元?

代码如下:

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


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

(5). 输入一个正整数,你输出 斐波那契数列的前n项。

代码如下:

//2. 输入一个正整数你,输出 斐波那契数列的前n项。
print("请输入一个正整数n(大于等于3):")
val n=scala.io.StdIn.readInt()
var a=1
var b=1
println(s"第${1}项是:1")
println(s"第${2}项是:1")
for(i<-3 to  n){
  val c=a+b
  println(s"第${i}项是:${c}")
  a=b
  b=c
}

(6). 乘法口诀

代码如下:

object basic22 {
  def main(args: Array[String]): Unit = {
    for (i<-1 to  9){
      for (j<-1  to  i) {

       // println(s"${j}*${i}=${i*j}")
        printf("%d*%d=%-3d",j,i,i*j)
        // %d 表示一个占位符,表示会以一个整数的格式输出对应的值。
        // %-3d   表示一个占位符,表示会以整数的格式输出对应的值,这是数字站三个字符的宽度,左对齐。
      }
      println()
    }
  }

}


/**
1*1=1  
1*2=2  2*2=4  
1*3=3  2*3=6  3*3=9  
1*4=4  2*4=8  3*4=12 4*4=16 
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/

(7). 求解百鸡百钱问题

代码如下:

object basic21 {
  def main(args: Array[String]): Unit = {
   for (x<-0 to  20){
     for (y<-0  to  33){
       var z=100-x-y
       // 小鸡的数量一定是3的倍数
       if(z%3==0 && 5*x+3*y+z/3==100){
         println(x,y,z)
       }
     }
   }

  }
}