Problem: HJ11 数字颠倒
题目描述
描述
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
数据范围:0 ≤ n ≤ 230 −1
输入描述:
输入一个int整数
输出描述:
将这个整数以字符串的形式逆序输出
示例1
输入:
1516000输出:0006151
解题思路
转为字符串,从最后一个输出
算法流程
- 程序使用Scanner类创建一个Scanner对象,用于获取用户输入的整数
- 程序使用scanner.nextInt()方法获取用户输入的整数,并将其存储在一个整型变量num中。
- 程序将整数num转换为字符串,以便进行反转操作。
- 程序创建一个空字符串reverseStr,用于存储反转后的字符串。
- 程序使用一个循环从字符串的最后一个字符开始,逐个将字符添加到reverseStr中。
- 程序使用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);
}
}
复杂度
- 时间复杂度:
添加时间复杂度, 示例:
- 程序使用一个循环来遍历输入的整数的每个数字,所以循环的次数取决于输入整数的位数,即n。
- 在循环中,每次迭代都执行常数时间的操作,因此循环的时间复杂度是O(n)。
- 空间复杂度:
添加空间复杂度, 示例:
- 程序使用了一个字符串变量来存储反转后的字符串,其长度与输入整数的位数相同,即n。
- 因此,空间复杂度是O(n)。