scala入门练习「建议收藏」

scala入门练习「建议收藏」1:输入两个数,按从小到大排序后输出2:输入三个数(互不相同),并将三个升序输出(升序(从小到大)3:输入一个年份,判断是否是闰年能被400整除能被4整除,不能被100整除4.输入一个时间,输出它的

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 hw01_scala

import scala.io.StdIn

object Test01 {
  def main(args: Array[String]): Unit = {
   //t1()
   // t2()
   // t3()
//t4()
//    t5()
//    t6()
//    t7()
//t8()
//    t9()
    t10()
  }

  def t1(): Unit ={
    println("Please input two numbers: ")
    var m=StdIn.readInt()
    var n=StdIn.readInt()
    var t=0;
    if(m>n){
      t=m
      m=n
      n=t
    }
    println(m+" "+n)
  }
///t2
  def t2(): Unit ={
    var max=0
    var n=StdIn.readInt()
    var arr =new Array[Int](n)
    for(i <- 0 to n-1 ){
      var m=StdIn.readInt()
      arr(i)=m
    }
    quickSort(arr, 0, n-1);
    for(i <- 0 to n-1 ){
      print(arr(i)+" ")
    }
  }
/t2-快排
  def quickSort(arr : Array[Int],low : Int,high : Int): Unit ={
    var i,j,temp,t=0
    if(low>high){
      return;
    }
    i=low;
    j=high;
    //temp就是基准位
    temp = arr(low);

    while (i<j) {
      //先看右边,依次往左递减
      while (temp<=arr(j)&&i<j) {
        j=j-1;
      }
      //再看左边,依次往右递增
      while (temp>=arr(i)&&i<j) {
        i=i+1;
      }
      //如果满足条件则交换
      if (i<j) {
        t = arr(j);
        arr(j) = arr(i);
        arr(i) = t;
      }
    }
    //最后将基准为与i和j相等位置的数字交换
    arr(low) = arr(i);
    arr(i) = temp;
    //递归调用左半数组
    quickSort(arr, low, j-1);
    //递归调用右半数组
    quickSort(arr, j+1, high);
  }
///t3

  def t3():Unit = {
    //    能被400整除
    //    能被4整除,不能被100整除
//    val input= new Scanner(System.in)
    println("输入一个年份:")
//    val num=input.nextInt()
    val num= StdIn.readInt()
    if((num %4==0 && num%100!=0) | num % 400 ==0 ){
      println(num+"是闰年")
    }else {
      println(num+"不是闰年")
    }
  }
///23:59:59  -->00:00:00
  def t4(): Unit ={
    println("请输入时间:")
    val time=StdIn.readLine()
    val str : Array[String] = time.split(":")
    var h = str(0).toInt
    var m = str(1).toInt
    var s = str(2).toInt

    s+=1
    if(s==60){
      m+=1
      s=0
      if(m==60){
        h+=1
        m=0
        if(h==24){
          h=0
        }
      }
    }
    printf("%02d:%02d:%02d",h,m,s)
  }

  //t5
  //5.输出1000以内所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身。
  def t5(): Unit ={
    for(i <- 100 to 1000-1){
      var g=i%10
      var s=i/10%10
      var b=i/100
      if(i==(Math.pow(g,3)+Math.pow(s,3)+Math.pow(b,3))){
        println(i)
      }
    }
  }
  //6.打印输出乘法口诀表(直角三角形)
  def t6(): Unit ={
    for(i <- 1 to 9){
      for(j <- 1 to 9){
        if(i>=j){
          print(j + "x" + i + "=" + (i*j) + "\t")
        }
      }
      println()
    }
  }
  //    7.在屏幕上输出以下内容:
  //    12345
  //    1234
  //    123
  //    12
  //    1
  def t7(): Unit ={
    for(i <- 1 to 5){
      for(j <- 1 to 6-i){
        print(j)
      }
      println()
    }
  }

  //8.给定一个n位的整数,将该数位逆置,例如给定12345变成54321,12320变成2321
  //要求:输入是数字-->打印的结果也要是一个数字 12345 -> 54321
  // 12320 --> 2321    12032 -->23021
  def t8(): Unit ={
    //    var num=12340
    //    var sub=0
    //    while(num!=0){
    //      var a = num%10
    //      sub=sub*10+a
    //      num=num/10
    //    }
    //    println(sub)

    val n=StdIn.readInt()
    val nn=n.toString.reverse.toInt
    println(nn)
  }
  //    9.求s=a+aa+aaa+aaaa+aa...a的值,
  //    其中a是一个数字(1-9之间)计算的数据的个数是5。例如2+22+222+2222+22222
  def t9(): Unit ={
    println("请输入一个数字(1-9之间):")
    var n=StdIn.readInt()
    var str=n.toString
    var m=n
    for(i <- 1 to 4){
      str=str+m
      println(str)
      n += str.toInt
    }
    println(n)
  }

  //    10.输入一个数,打印下述图形
  //    输入5
  //    打印
  //        ABBBB
  //       AABBB
  //      AAABB
  //     AAAAB
  //    AAAAA
  def t10(): Unit ={
    println("请输入一个数字:")
    val num=StdIn.readInt()
    for(i <- 1 to num){
      for(j <- i until num){
        print(" ")
      }
      for(k <- 1 to i){
        print("A")
      }
      for(x <- i until num){
        print("B")
      }
      println()
    }
  }
  
}

今天的文章scala入门练习「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/63022.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注