//java方法一:(迭代方式,效率较高)
public class Fibonacci {
//求斐波那契数列第n项的值,[1, 1, 2, 3, 5, 8, 13, 21]
public static long fn(int n){
if(n==1||n==2){
System.out.println("第"+n+"项的值为:"+1);
return 1;
}else{
long[] f=new long[n];
f[0]=1;
f[1]=1;
for(int i=2;i<n;i++){
f[i]=f[i-1]+f[i-2];
}
System.out.println("第"+n+"项的值为:"+f[n-1]);
return f[n-1];
}
}
public static void main(String[] args) {
fn(8);
}
}
//java方法二:(递归调用,性能较差)
public class FibonacciDigui {
public static void main(String[] args) {
System.out.println(fibonacci(8));
}
public static long fibonacci(long n) {
if(n == 0 || n ==1) {
return n;
}else{
return fibonacci(n-1) + fibonacci(n-2);
}
}
}
//c++代码:
#include <iostream.h>
long fibonacci( long );
int main()
{
long result, number;
cout << "Enter an integer: ";
cin >> number;
result = fibonacci( number );
cout << "Fibonacci(" << number << ") = " << result << endl;
return 0;
}
long fibonacci( long n)
{
if (n == 0 || n == 1)
return n;
else
return fibonacci(n-1) + fibonacci(n-2);
}