Scala入门案例

71 阅读1分钟

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)) "闰年" else "平年"
    print(s"${year}年是${flag}")
  }
}

4.输出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 <-  1 to 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"))
 }
}

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

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()
   }
 }
}

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

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
    }
 }

}

7.给定一个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变成5432112320变成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()

 }

}

8.求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()

   }
 }

}