给一个不多于n位的正整数,要求:
1.输出它是几位数
2.分别输出每一位数字
3.逆序输出各位数字,如: 原始数据:123,应输出:321
//1.判断位数
public static int getBit(int number){
int count = 0;
while(number!=0){
number/=10;
count++;
}
return count;
}
//2.分别获取每一位数字 **使用数组操作**
public static int[] getEveryNumber(int number){
int[] arr = new int[getBit(number)];
while(number!=0) {
for (int i = 0; i < arr.length; i++) {
int a = number % 10;
arr[i] = a;
number /= 10;
}
}
return arr;
}
//3.逆置每一位数字
public static int reverse(int number){
int bit = getBit(number);
int result=0;
while(number!=0){
int a=number%10;
result = (int)(result + a*Math.pow(10,--bit)); //bit-1; bit- - -> - -bit
number/=10;
}
return result;
}
主函数如下:
public static void main(String[] args){
System.out.println("请输入数字:");
Scanner scanner = new Scanner(System.in);
int count = scanner.nextInt();
System.out.println("位数为:");
System.out.println(getBit(count));
System.out.println("逆置后:");
System.out.println(reverse(count));
System.out.println("分别获取每一位数字如下:");
System.out.println(Arrays.toString(getEveryNumber(count)));
}
运行结果: