面试题中一个递归转for循环的题
原来的递归代码:
public static int unsigned(int num){
return (num < 2)? 1:unsigned(num - 1)+unsigned( num-2);
}
转换成for循环:
public static int unsigned(int num){
List<Integer> list = new ArrayList();
list.add(num);
for (int i = 0; i < list.size();){
if (list.get(i) < 2){
i++;
}else {
Integer remove = list.remove(i);
list.add(remove - 1);
list.add(remove - 2);
}
}
return list.size();
}