package com.study.util;
import java.util.ArrayList;
import java.util.List;
/**
* Created by JDC on 18-9-29
*/
public class Main1 {
public static void main(String[] args) {
int num = 125896;
List list0 = new ArrayList<Integer>();
List list = getRes(num,list0);
for (int i = list.size()-1; i >=0 ; i--) {
System.out.print(list.get(i) + " ");
}
}
private static List getRes(int num, List list) {
if(num >= 0 && num <= 9) {
list.add(num);
return list;
}
else{
list.add(num % 10);
num = num / 10;
getRes(num,list);
}
return list;
}
}
分析:既然输出,必须一位一位的处理,即涉及整数num / 10以及num % 10来得到下次处理的num和当前确定输出的一位。很显然递归实现。
注意事项:
1.输出顺序
需要注意递归过程中临时存储到list中是逆序的,这是num / 10 决定的,所以输出必须得逆向遍历
2.数组与链表的选择
由于整数也就十几位而已,尽管在之前不知道开辟多大空间,似乎选择LinkedList更好,但是对于这么十几位的空间,其实数组就可以了,没必要在这个小问题上锱铢必较。
另外,这是本人第一次发帖,希望你能喜欢。