Чтобы разделить цифры целого числа слева направо, я использую 2 разных метода, первый для подсчета количества цифр, из которых состоит целое число, а затем я разделил их слева направо, разделив целое число на 10, поднятое до сила числа цифр минус 1.
//method to separate digits of an integer from left to right
private static void separateDigits(int num){
int numOfDigits = countNumberOfDigits(num);
for (int numOfZeros = numOfDigits-1; numOfZeros >= 0 ; --numOfZeros){
int divisor = (int) Math.pow(10, numOfZeros);
System.out.print( Math.abs(num) / divisor + " // " );
num %= divisor;
}
}
//method to count number of digits
private static int countNumberOfDigits(int num){
int numOfDigits=0;
//using absolute value of num allows method to work even with negative integers
while(Math.abs(num) > 0){
num = num / 10;
numOfDigits++; //this counts the number of times the "while" loops
}
return numOfDigits;
}
Не использовать массивы или рекурсивные методы, просто деление на "/" и "%".
Вызов метода:
public static void main(String args[]) {
separateDigits( -123456789 );
}
выходы:
1 // 2 // 3 // 4 // 5 // 6 // 7 // 8 // 9 //