公司考题,会JAVA的大神帮忙做下以下代码main方法运行后输出的结果,谢谢了
菲波那契(Fibonacci)数列:0,1,1,2,3,5,8,13,21,34,55,89,…该数列中的每个位置n处的元素f(n)符合如下数学公式:f(n)=0(n=0...
菲波那契(Fibonacci)数列:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …
该数列中的每个位置n处的元素f(n)符合如下数学公式:
f(n)=0 (n=0)
f(n)=1 (n=1)
f(n)=f(n-1)+f(n-2) (n>1)
请用Java或者你所擅长的语言分别以递归和循环的形式实现菲波那契数列的计算:
方法名:fib
输入参数:long n – 需要计算的菲波那契数的序号(n≥0),对应上面公式中的n。
返回值:菲波那契数列中位置n上的数。
递归算法:
循环算法 展开
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …
该数列中的每个位置n处的元素f(n)符合如下数学公式:
f(n)=0 (n=0)
f(n)=1 (n=1)
f(n)=f(n-1)+f(n-2) (n>1)
请用Java或者你所擅长的语言分别以递归和循环的形式实现菲波那契数列的计算:
方法名:fib
输入参数:long n – 需要计算的菲波那契数的序号(n≥0),对应上面公式中的n。
返回值:菲波那契数列中位置n上的数。
递归算法:
循环算法 展开
1个回答
展开全部
这个简单呀,递归做就好了
这样会倒着从第n个数往回写
void fibonacci(int num){
assert num >= 0; // Num取正值
if((0 == num)||(1 == num)) {
System.out.print(num + ", ");
}
else{
System.out.print(fibonacci(num-1)+fibonacci(num-2));
}
}
再来个正着写的
void fibonacci(int num){
int first = 0;
int second = 0;
System.out.print(first+ ", ");
System.out.print(second + ", ");
int third = first+second;
while ((num-2) > 0) {
third = first + second;
System.out.print(third+ ", ");
third = second;
second = first;
n--;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询