HJ11 数字颠倒

116 阅读2分钟

Problem: HJ11 数字颠倒

题目描述

描述

输入一个整数,将这个整数以字符串的形式逆序输出

程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001

数据范围:0 ≤ n ≤ 230 −1

输入描述:

输入一个int整数

输出描述:

将这个整数以字符串的形式逆序输出

示例1

输入:1516000 输出:0006151

解题思路

转为字符串,从最后一个输出

算法流程

  1. 程序使用Scanner类创建一个Scanner对象,用于获取用户输入的整数
  2. 程序使用scanner.nextInt()方法获取用户输入的整数,并将其存储在一个整型变量num中。
  3. 程序将整数num转换为字符串,以便进行反转操作。
  4. 程序创建一个空字符串reverseStr,用于存储反转后的字符串。
  5. 程序使用一个循环从字符串的最后一个字符开始,逐个将字符添加到reverseStr中。
  6. 程序使用System.out.println()方法将反转后的字符串输出到控制台。

代码

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
     public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        String numStr = String.valueOf(num);
        String reversedNum = "";
        for (int i = numStr.length() - 1; i >= 0; i--) {
            reversedNum += numStr.charAt(i);
        }
        System.out.println(reversedNum);
    }
}

复杂度

  • 时间复杂度:

添加时间复杂度, 示例: O(n)O(n)

  • 程序使用一个循环来遍历输入的整数的每个数字,所以循环的次数取决于输入整数的位数,即n。
  • 在循环中,每次迭代都执行常数时间的操作,因此循环的时间复杂度是O(n)。
  • 空间复杂度:

添加空间复杂度, 示例: O(n)O(n)

  • 程序使用了一个字符串变量来存储反转后的字符串,其长度与输入整数的位数相同,即n。
  • 因此,空间复杂度是O(n)。