scala 入门练习
1:输入两个数,按从小到大排序后输出
2:输入三个数(互不相同),并将三个升序输出(升序(从小到大)
3:输入一个年份,判断是否是闰年
能被400整除
能被4整除,不能被100整除
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
5.输出1000以内所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身。
6.打印输出乘法口诀表(直角三角形)
7.在屏幕上输出以下内容:
12345
1234
123
12
1
8.给定一个n位的整数,将该数位逆置,例如给定12345变成54321,12320变成2321
要求:输入是数字–>打印的结果也要是一个数字 12345 -> 54321 12320 --> 2321 12032 -->23021
9.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字(1-9之间)计算的数据的个数是5。例如2+22+222+2222+22222
10.输入一个数,打印下述图形
输入5
打印
ABBBB
AABBB
AAABB
AAAAB
AAAAA
package lianxi
import scala.io.StdIn
/**
* @author hty
* @create 2021-05-31 17:17
*/
object HomeWork {
def main(args: Array[String]): Unit = {
f3()
}
//1:输入两个数,按从小到大排序后输出
def f1(): Unit = {
println("第一个数")
val n1 = StdIn.readInt()
println("第二个数")
val n2 = StdIn.readInt()
if(n1 < n2)
print(s"$n1 - $n2")
else
println(s"$n2 - $n1")
}
//2:输入三个数(互不相同),并将三个升序输出(升序(从小到大)
def f2():Unit = {
println("第一个数")
val n1 = StdIn.readInt()
println("第二个数")
val n2 = StdIn.readInt()
println("第三个数")
val n3 = StdIn.readInt()
if(n1 < n2)
if(n3 < n1)
println(s"${n3} - ${n1} - ${n2}")
else if(n3 > n2)
println(s"${n1} - ${n2} - ${n3}")
else
println(s"${n1} - ${n3} - ${n2}")
else
if(n3 < n2)
println(s"${n3} - ${n2} - ${n1}")
else if(n3 > n1)
println(s"${n2} - ${n1} - ${n3}")
else
println(s"${n2} - ${n3} - ${n1}")
}
// 4.输入一个时间,输出它的下一秒时间。
def f3(): Unit ={
val time = StdIn.readLine("输入一个时间")
val splits: Array[String] = time.split(":")
var hour: Int = splits.apply(0).toInt
var min: Int = splits.apply(1).toInt
var sec: Int = splits.apply(2).toInt
sec += 1
if(sec == 60) {
min += 1
sec = 0
}
if(min == 60){
hour += 1
min = 0
}
if(hour == 24)
hour = 0
printf("%02d:%02d:%02d",hour,min,sec)
// println(s"${hour}:${min}:${sec}")
}
//5.输出1000以内所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身。
def f4(): Unit = {
for(i <- 100 to 999) {
val b = i / 100
val s = i % 100 /10
val g = i % 100 % 10
if(i == b * b * b + s * s * s + g * g * g) {
println(i)
}
}
}
//6.打印输出乘法口诀表(直角三角形)
def f5(): Unit = {
for(i <- 1 to 9; j <- 1 to i) {
print(s"$i * $j = ${i * j}\t")
if(j == i) println()
}
}
//7.在屏幕上输出以下内容:
def f6(): Unit = {
for(i <- 5 to 1 by -1; j <- 1 to i) {
print(j + " ")
if(j == i)
println
}
}
//8.给定一个n位的整数,将该数位逆置,例如给定12345变成54321,12320变成02321
def f7(): Unit = {
val num = StdIn.readLine("请输入一个整数")
val str = for (i <- num reverse) yield i
println(str.toLong)
}
//9.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字(1-9之间)计算的数据的个数是5。例如2+22+222+2222+22222
def f8(): Unit = {
print("请输入a")
val a: Int = StdIn.readInt()
println("请输入num")
val num: Int = StdIn.readInt()
//方法一
// var sum = 0
// for(i <- 1 to num) {
// sum += ((a + "") * i).toInt
// }
//方法二
var tmp: Int = 0
var sum: Int = 0
for(i <- 1 to num) {
tmp = tmp * 10 + a
println(tmp)
sum += tmp
}
print(sum)
}
//输入一个数,打印下述图形
// ABBBB
// AABBB
// AAABB
// AAAAB
// AAAAA
def f9(): Unit = {
println("请输入一个整数")
val n = StdIn.readInt()
for(i <- 1 to n;j <- n - 1 to i by -1){
print(" ")
if(j == i)
println("A" * i + "B" * (n - j))
}
}
}