题目描述
给出一个不多于5位的整数,要求
-
1、求出它是几位数
-
2、分别输出每一位数字
-
3、按逆序输出各位数字,例如原数为321,应输出123
输入描述
一个位数不超过5位的数字
输出描述
输出共3行
-
第1行 描述数字的位数
-
第2行 用空格分开的每个数字,注意最后一个数字后没有空格
-
第3行 按逆序输出这个数
样例输入
12345
样例输出
5 1 2 3 4 5 54321
注意输入的值可能为负整数,负整数时要忽略负号。
解决:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
if (num>=0) {
myPrint(num);
}else {
num = Math.abs(num);
myPrint(num);
}
in.close();
}
public static void myPrint(int num) {
// 取输入数值中的每一位
int[] all = {
(num/10000)%10,
(num/1000)%10,
(num/100)%10,
(num/10)%10,
num%10
};
// 找到第一个数值不为0的元素的下标
int head = 0;
for (int i=0;i<all.length;i++) {
if (all[head]==0) {
head++;
}
}
// 计算并输出 输入值的位数
System.out.println(all.length-head);
// 分隔输出每位
for (int j=head;j<all.length-1;j++) {
System.out.print(all[j]+" ");
}
System.out.println(all[all.length-1]);
// 倒序输出每位
for (int j=all.length-1;j>=head;j--) {
System.out.print(all[j]);
}
}
}