输出结果一样,但右边的是对的,左边是错的,错哪了呢。已经想很久了,不是负数的问题,我试过了,想不通左边为什么过不了
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]);
}
}
}