scala练习1

28 阅读1分钟

1.编写一个函数,它的入参是一个表示年份的整数,返回值是一个bool值,判断这个年份是否是闰年

 def main(args:Array[String]): Unit = {
    def iii(x: Int): Boolean = {
      if (x % 400 == 0){
        true
      }else if (x % 100 == 0) {
        false
      } else {
        x % 4 == 0
      }
    }
    println(iii(2000))
  }
}

2.编写一个函数,用来求f(100)的值。其中f(n)=1 - 1/2 + 1/3 - 1/4 +...1/n

var sum:Double=0  
    var i =1         
    while(i <=100) {
      
      if (i % 2 == 1) { 
        sum = sum + 1.0 / i 
      } else { 
        sum -= 1.0 / i 
      }
      i += 1

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

3.编写一个函数,用来求斐波那契数列的前20项。其中f(1)=f(2)=1,f(n-1)+f(n-2)

def f(n:Int):Int={
    if(n ==1){
      1
    }else if(n ==2){
      2
    }else{
      f(n-1)+f(n-2)
    }
  }




  def main(args:Array[String]): Unit = {
    val rst = f(20)      //10946
    println(rst)
  }
}

4.编写一个函数,允许用户输入一个整数年份,如果用户输入的是润年就停止,否则就一直提示用户输入

def main(args:Array[String]): Unit = {
    while(true){
      print("请输入你要判断的年份:")
      var year=scala.io.StdIn.readInt()

      if(year%400==0 ||(year%4==0 &&year%100!=0)){
        println(s"$year 是闰年,结束程序")
        bareak
      }else{
        println(s"$year 不是闰年,请输入年份")
      }
    }
  }
}

5.对成绩(100,51,55,67,59,89)进行处理,如果分数在56-59之间,就设置60分,得到的新成绩为

def main(args:Array[String]): Unit = {
  val arr = Array(100,51,55,67,59,89)
  var arr1 = arr.map(x => if(x >= 56 && x <= 59) 60 else x)

  arr.foreach(println)