大数据之Scala学习之基础练习

Posted Mr.zhou_Zxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据之Scala学习之基础练习相关的知识,希望对你有一定的参考价值。

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

import scala.io.StdIn
object num1 {
    def main(args:Array[String]): Unit ={
        println("请输入第一个数字:")
        val num1 = StdIn.readInt()
        println("请输入第二个数字:")
        val num2 = StdIn.readInt()
        change(num1,num2)
    }
    def change(num1:Int,num2:Int): Unit ={
        if(num1 < num2) print(s"$num1 -> $num2")
        else print(s"$num2 -> $num1")
    }
}

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

import scala.io.StdIn

//2:输入三个数(互不相同),并将三个升序输出(升序(从小到大)
object num2 {
    def main(args:Array[String]): Unit ={
        println("请输入三个互不相同的数字!!!")
        println("请输入第一个数字:")
        val num1 = StdIn.readInt()
        println("请输入第二个数字:")
        val num2 = StdIn.readInt()
        println("请输入第三个数字:")
        val num3 = StdIn.readInt()
        Order1(num1,num2,num3)
        Order2(num1,num2,num3)
    }
    
    /**
     *num2 < num1
     */
    def Order1(num1:Int,num2:Int,num3:Int): Unit ={
        if(num1 < num2){
            if(num2 < num3) print(s"$num1 -> $num2 -> $num3")
            else if(num1 < num3) print(s"$num1 -> $num3 -> $num2")
            else print(s"$num3 -> $num1 -> $num2")
        }
        else{
            if(num1 < num3) print(s"$num2 -> $num1 -> $num3")
            else if(num2 > num3) print(s"$num3 -> $num2 -> $num1")
            else print(s"$num2 -> $num3 -> $num1")
        }
    }
}

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

import scala.io.StdIn

object leap {
    def main(args:Array[String]): Unit ={
        println("请输入一个年份")
        val year = StdIn.readInt()
        if(JudgeYear(year)){
            println(year + "是一个闰年")
        }else{
            println(year + "是一个平年")
        }
        
    }
    
    def JudgeYear(year:Int): Boolean = {
        var isLeapYear = true
        
        if(year % 3200 == 0) isLeapYear = false;
        else if(year % 400 == 0) isLeapYear = true;
        else if(year % 100 == 0) isLeapYear = false;
        else if(year % 4 == 0) isLeapYear = true;
        else isLeapYear = false;
        
        isLeapYear
    }
}

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

import java.text.SimpleDateFormat
import java.util.Date
import scala.io.StdIn
object num4 {
    def main(args:Array[String]): Unit ={
        val format = new SimpleDateFormat("HH:mm:ss")
        val time1 = format.parse("20:39:40")
        val time2 = time1.getTime + 1000
        val time3 = format.format(new Date(time2.toLong))
        println("你输入的时间是:" + time1)
        println("下一秒的时间是:" + time3)
    }
}

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

object num5 {
    def main(args:Array[String]): Unit ={
        for(n <- 100 until 1000){
            val a = n % 10
            val b = n % 100 / 10
            val c = n / 100
            val sum = (a*a*a) + (b*b*b) + (c*c*c)
            if(sum == n) println(n)
        }
        
    }
}

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

object num5 {
    def main(args:Array[String]): Unit = {
        for (i <- 1 to 9 ; j <- 1 to 9 ; if(j <= i) ) {
         print(s"$i * $j = ${i * j}\\t")
            if(i == j) println()
        }
    }
}

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

object num6 {
    def main(args:Array[String]):Unit = {
        for (i <- 1 to 5 reverse; j <- 1 to 5; if(j <= i)) {
            print(j)
            if (i == j) println()
        }
    }
}

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

import scala.io.StdIn
object num8 {
    def main(args:Array[String]): Unit ={
        println("请输入一个数字 ")
        var num  = StdIn.readInt()
        println(num.toString.reverse.toInt)
    }
}

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

import scala.io.StdIn
import scala.util.Random
object num9 {
    def main(args:Array[String]) {
        val random = new Random()
        val a = random.nextInt(8) + 1
        println("a = " + a)
        println("请输入需要计算数据的个数")
        val n = StdIn.readInt()
        println("数据个数为:" + n + ",参与计算数字为:" + a + ",结果为:" + number(a,n))

    }
    def number(num:Int,n:Int): Int ={
        var i = n
        var numb = 0
        var sum = 0
        while(i > 0) {
            numb = (s"${num}" * i).toInt
            println(numb)
            sum += numb
            i -=1
        }
        sum
    }
}

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


以上是关于大数据之Scala学习之基础练习的主要内容,如果未能解决你的问题,请参考以下文章

大数据Scala学习—列表 集与映射

Scala 模式匹配详解

Scala之option类型及偏函数使用异常处理正则表达式

Scala学习汇总篇

理解Scala的函数式编程思想

大数据学习之Scala语言基本语法学习36