0
点赞
收藏
分享

微信扫一扫

Scala入门案例

1:输入两个数,按从小到大排序后输出

package com.qf.bigdata

import scala.collection.mutable.ArrayBuffer
import scala.io.StdIn

object Demo02 {
  def main(args: Array[String]): Unit = {
    println("请输入两个数,比较大小")
    val a = StdIn.readInt()
    val b = StdIn.readInt()
    val arr = ArrayBuffer[Int](a,b)
    println(arr.sortWith(_<_))
  }
}

2:输入三个数(互不相同),并将三个升序输出(升序(从小到大)

package com.qf.bigdata

import scala.collection.mutable.ArrayBuffer
import scala.io.StdIn

object Demo02 {
  def main(args: Array[String]): Unit = {
    println("请输入三个数,比较大小")
    val a = StdIn.readInt()
    val b = StdIn.readInt()
    val c = StdIn.readInt()
    val arr = ArrayBuffer[Int](a,b,c)
    println(arr.sortWith(_<_))
  }
}

3:输入一个年份,判断是否是闰年
能被400整除
能被4整除,不能被100整除

package com.qf.bigdata
import scala.io.StdIn
/*
* 输入一个年份,判断是否是闰年
    能被400整除
    能被4整除,不能被100整除
 */
object Demo02 {
  def main(args: Array[String]): Unit = {
    println("请输入一个年份:")
    val year = StdIn.readInt()
    isFlag(year)

  }
  def isFlag(year:Int){
    val flag = if((year % 400 == 0) ||(year % 4 == 0 && year % 100 !=0))||(year % 3200 != 0) "闰年" else "平年"
    print(s"${year}年是${flag}")
  }
}

4.输入一个时间,输出它的下一秒时间。
20:39:40 -->20:39:41
20:39:59 -->20:40:00
20:59:59 -->21:00:00
23:59:59 -->00:00:00

package com.qf.bigdata


import java.text.SimpleDateFormat
import java.util.Date


import scala.io.StdIn
/*
*输入一个时间,输出它的下一秒时间。
20:39:40 -->20:39:41
20:39:59 -->20:40:00
20:59:59 -->21:00:00
23:59:59 -->00:00:00
*
*
 */
object Demo02 {
  def main(args: Array[String]): Unit = {
    val time = StdIn.readLine("请输入时间:yyyy-MM-dd HH:mm:ss :")
    dateTime(time)
  }
 def dateTime(time:String) {
   if(time == null){
     println("请输入时间!")
     return
   }
   val fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
   try{
     val date:Date = fmt.parse(time)
     date.setTime(date.getTime + 1000)
     val nextSecond:String = fmt.format(date)
     println(nextSecond)
   }catch {
     case e:Exception => println("时间格式不正确")
   }

 }

}

5.输出1000以内所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身。

package com.qf.bigdata

import scala.collection.mutable.ArrayBuffer
import scala.io.StdIn
/*
* 输出1000以内所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身。
 */
object Demo02 {
  def main(args: Array[String]): Unit = {
    isNum
  }
 def isNum{
   var arr = ArrayBuffer[Int]()
   for(num <-  100 until 1000){
     var ge = num % 10
     var bai = num %100 /10
     var qian = num / 100
     if((scala.math.pow(ge,3)+scala.math.pow(bai,3)+scala.math.pow(qian,3))==num) arr.append(num)
   }
   arr.foreach(x=>print(x+"\t"))
 }
}

6.打印输出乘法口诀表(直角三角形)

package com.qf.bigdata
import scala.collection.mutable.ArrayBuffer
/*
* 打印输出乘法口诀表(直角三角形)。
 */
object Demo02 {
  def main(args: Array[String]): Unit = {
    isNum
  }
 def isNum{
   for(x <- 1 to 9){
     for(y <- 1 to x){
       print(s"${x}*${y}=${x*y}"+"\t")
     }
     println()
   }
 }
}

也可以嵌套
for(i <- 1 to 9 ;j<- 1 to i){
   print(s"${i}*${j}=${i*j}\t")
   if(i == j) println
}

7.在屏幕上输出以下内容:
12345
1234
123
12
1

package com.qf.bigdata
import scala.collection.mutable.ArrayBuffer
/*
* 在屏幕上输出以下内容:
12345
1234
123
12
1
 */
object Demo02 {
  def main(args: Array[String]): Unit = {
    isNum
  }
 def isNum {
   var num = 12345
    while (num>0){
      print(num+"\n")
      num = num / 10
    }
 }

}

8.给定一个n位的整数,将该数位逆置,例如给定12345变成54321,12320变成02321
要求:输入是数字–>打印的结果也要是一个数字 12345 -> 54321 12320 --> 2321 12032 -->23021

package com.qf.bigdata
import scala.collection.mutable.ArrayBuffer
import scala.io.StdIn
/*
* 给定一个n位的整数,将该数位逆置,例如给定12345变成54321,12320变成02321
要求:输入是数字-->打印的结果也要是一个数字 12345 -> 54321    12320 --> 2321    12032 -->23021
 */
object Demo02 {
  def main(args: Array[String]): Unit = {
    isNum
  }
 def isNum {
   print("请输入一个数:")
   var nums = StdIn.readInt()
   while (nums != 0){
     print(nums % 10)
     nums = nums/10
   }
   println()

 }

}

9.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字(1-9之间)计算的数据的个数是5。例如2+22+222+2222+22222

package com.qf.bigdata
import scala.io.StdIn

object Demo02 {
  def main(args: Array[String]): Unit = {
    isNum
  }
 def isNum {
   print("请输入一个数:")
   var nums = StdIn.readInt()
   var count = 0
   var sum = 0
   for(x <- 0 until 5){
     count = count + nums
     sum = sum + count
     nums = nums * 10
   }
 print(s"最后总和是 ${sum}")
 }

}

10.输入一个数,打印下述图形
输入5
打印
ABBBB
AABBB
AAABB
AAAAB
AAAAA

package com.qf.bigdata
import scala.io.StdIn

object Demo02 {
  def main(args: Array[String]): Unit = {
    isNum
  }
 def isNum {
   print("请输入一个数:")
   var nums = StdIn.readInt()
   for(x <- 1 to nums;y<- 1 to nums){
      if (y <= x)
        print("A")
      else
        print("B")
     if(x == y)
       println()

   }
 }

}

举报

相关推荐

0 条评论