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()
    }
  }
  
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值