初学scala——scala入门练习

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

def sort(a:Int,b:Int)={
        if (a > b) {
            println(s"$b $a")
        }else {
            println(s"$a $b")
        }
    }

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

def sort(a:Int,b:Int,c:Int) = {
        var x = a
        var y = b
        var z = c
        var temp:Int = 0
        if (x > y) {temp = x;x = y;y = temp}
        if (x > z) {temp = x;x = z;z = temp}
        if (y > z) {temp = y;y = z;z = temp}
        println(s"$x  $y  $z")
    }

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

 def isLeapYear(year:Int):Boolean = {
        var isLeapYear = false
        if (year % 4 == 0 && year % 100 != 0) {
            isLeapYear = true
        }
        if (year % 400 == 0) {
            isLeapYear = true
        }
        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

def dateTime(date:String) = {
        var  s:Array[String] = date.split(":")
        var hour:Int = Integer.parseInt(s(0))
        var minute:Int = Integer.parseInt(s(1))
        var second:Int = Integer.parseInt(s(2))
        second += 1
        if(second == 60) {
            second = 0
            minute += 1
            if (minute == 60) {
                minute = 0
                hour += 1
                if (hour == 24) {
                    hour = 0
                }
            }
        }
        println(s"$hour:$minute:$second")
    }

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

//水仙花数
    def printY() = {
        for (i <- 100 until 1000) {
            var x = i / 100
            var y = (i / 10) % 10
            var z = i %10
            x = x * x * x
            y = y * y * y
            z = z * z * z
            if (i == x + y +z)
                println(i)
        }
    }

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

def printTable() = {
        for (i <- 1 to 9;j <- 1 to i){
            print(s"$i x $j = ${i * j} \t")
            if (i == j)
                println()
        }
    }

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

 def printX() = {
        for(i <- 1 to 5 reverse; j <- 1 to 5 ){
            if (j <= i)
                print(j +"\t")
            if (i == j)
                println()
        }
    }

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

def reverseNumber(num:Int):Int = {
        var number = String.valueOf(num)
        var index = number.length - 1
        var result = ""
        for (i <- 0 to index reverse){
            result += number.charAt(i)
        }
        return Integer.parseInt(result)
    }

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

 def sum(x:Int):Int = {
        var sum:Int = 0
        var num:String = ""
        for(i <- 1 to 5;j <- 1 to i) {
            num += x
            if (i == j) {
                println(num)
                sum += Integer.parseInt(num)
                num = ""
            }
        }
        return sum
    }

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

def printZ(n:Int) = {
        for(i <- 1 to n;j <- 1 to n){
            if (j <= i)
                print("A")
            else
                print("B")
            if(j == n)
                println()
        }
    }
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值