本帖最后由 lihaotian_120 于 2013-8-22 16:22 编辑
好像是蓝桥杯初试的一个题目,不过100层的数据貌似很大。把递归方程写出来之后就会发现是斐波那契数列- class Test2
- {
- public static void main(String[] args)
- {
- System.out.println(fun(100));
- }
- //递归方程 :f(n)=f(n-1)+f(n-2) f(i)为走到第i层的时候的种数。
- //边界:f(0)=1;f(n<0)=0;
- public static long fun(int n)
- {
- long temp1=1,temp2=1,tempn=0;
- if(n==1||n==2)return 1;
- for(int i=3;i<=n;i++)
- {
- tempn=temp1+temp2;
- temp1=temp2;
- temp2=tempn;
- }
- return tempn;
- }
- }
复制代码 这种方法最好想,当然,你也可以用递推,不过感觉数据好大,是我想错了吗?PS:换成递推了,但是数据存不下,要高精度处理
|