此处只考虑正整数,且只使用简单运算
负整数的话判断下然后取相反数,剩下同理
// 从右往左输出 class ExtractDigits { public static void main(String[] args) { int number = 123456789; // 依次输出最后一位数字 while (number > 0) { // 对10取模得最后一位数字 int remainder = number % 10; // 输出最后一位数字 System.out.println(remainder); // 移除最后一位数字 number = number / 10; } } } class ExtractDigits { public static void main(String[] args){ printDigits(123); } // 首先输入num=123,num/10=12>0进入if, 并且以num=12进入第二层递归 // num=12, num/10=1>0进入if, 并且以num=1进入第三层递归 // num=1, num/10=0!>0, 跳过if输出1%10,即1,然后以返回第二层递归 // 在第二层已经执行完if语句段,num=12(进入第二次递归时的num值),输出12%10,即2,然后返回第一层递归 // 在第一层已经执行完if语句段,num=123(进入第一次递归时的num值),输出123%10,即3,递归完成 public static void printDigits(int num) { System.out.printf("num=%dn", num); if(num / 10 > 0) { System.out.printf("num/10=%dn", num / 10); printDigits(num / 10); } System.out.printf("%d ", num % 10); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)