其他分享
首页 > 其他分享> > 倒序求最优繁殖数列——繁殖数列:数列从第3项开始,每一项都等于前2项之和。给定任意数字(大于0),求长度最大的繁殖数列。

倒序求最优繁殖数列——繁殖数列:数列从第3项开始,每一项都等于前2项之和。给定任意数字(大于0),求长度最大的繁殖数列。

作者:互联网

倒序求最优繁殖数列——繁殖数列:数列从第3项开始,每一项都等于前2项之和。给定任意数字(大于0),求长度最大的繁殖数列。

···public class Test4 {

public static void main(String[] args) {
	new Test4().fn(5);
}

private void fn(int maxNum) {
	LinkedList<Integer> results = new LinkedList<Integer>();
	int size = 0;
	for (int i = 1; i < maxNum; i++) {
		LinkedList<Integer> listTemp = new LinkedList<Integer>();
		listTemp.addFirst(maxNum);
		listTemp.addFirst(i);
		LinkedList<Integer> resultTemp = getArray(listTemp);
		//保存最大的长度的集合
		if(resultTemp.size()>=size) {
			results = resultTemp;
			size = resultTemp.size();
		}
	}
	int [] resultArr = new int [results.size()];
	int index = 0;
	for (int i : results) {
		resultArr[index] = i;
		index++;
	}
	System.out.println(Arrays.toString(resultArr));
}

private LinkedList<Integer> getArray(LinkedList<Integer> result) {
	//用第三项减去第二项 大于零即可递归
	int temp = result.get(1)-result.get(0);
	if(temp>=0) {
		result.addFirst(temp);
		getArray(result);
	}
	return result;
}

}

标签:size,LinkedList,int,results,result,繁殖,倒序,数列
来源: https://blog.csdn.net/qshSuperman/article/details/98221217