您的位置:首页 > 职场人生

今天面试有关斐波那契函数 java 实现

2011-04-08 23:35 281 查看
今天很高兴被网易通知去参加面试,下午四点来到清华科技园,满怀激动的心情直奔网易的网站部,一个给我打了三次电话的小眉眉接待的我,呵呵,随后很热情给我一份笔试题,我去,竟然有6页,还规定我在一个小时内做完。在我慌慌张张的做了一个小时后,小眉眉让我拿着试题去会议室等待被面试,面试的过程很激烈,最后他问我为什么来网易,我是这样回答的“网易的口号是'网聚人的力量'我想我也是人吧,所以就来了”这句话把他逗乐了。整个过程自我感觉良好,但是他给我的答案是你答得的比不是很好,笔试题上斐波那契函数实现的算法效率太低,真是冤枉,一看那么多题,我想都没有想,就用了递归。晚上回来后用数组实现了一遍,果然效率差很多

源代码如下:

package com.clz.aa;

public class ReadAndCount
{
public static void main(String args[])
{
long start=System.currentTimeMillis();
System.out.println(getSimpleFac(30));
long stop=System.currentTimeMillis();
System.out.println(stop - start);

long start1=System.currentTimeMillis();
System.out.println(getCommFac(30));
long stop1=System.currentTimeMillis();
System.out.println(stop1 - start1);
}
public static int getSimpleFac(int n)//用数组实现
{
int[] f = new int[n+1];
if(n == 0)f[0]=0;
else if(n==1)
{
f[1]=1;
}
else if(n > 1)
{
f[0] = 0;
f[1] = 1;
for(int i = 2 ; i <= n; i++)
{
f[i] = f[i-1] + f[i-2];
}
}
return f
;
}
public static int getCommFac(int n)//用递归实现
{

if(n==0)
return 0;
else if(n==1)
return 1;

return getCommFac(n-1)+getCommFac(n-2);
}
}


结果:

832040
数组实现用时:0
832040
递归实现用时:15

每次面试都能发现自己很多不足,再接再励!加油!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐