JAVA:求斐波那契数列第n项

需求:
求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55

求解,麻烦各路大神帮下小弟呗

public class Fibonacci {
public static void main(String args[]){
int n,fn;//n为第n项,fn为第n项的值
java.util.Scanner s = new Scanner(System.in);
n=s.nextInt();
fn=function(n);
System.out.println("斐波那契数列第"+n+"项为:"+fn);
}

public static int function(int n){
if(n==1 || n==2) return 1;
return function(n-1)+function(n-2);
}

}
希望能帮到你,其实和c语言是一样一样的。。
希望能解决您的问题。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-10
int[] a = new int [30];

for(int i=0; i<30;i++){
if(i==0){
a[0]=1;
}else if(i==1){
a[1]=1;
}else{
a[i]=a[i-1]+a[i-2];
}
System.out.println(a[i]);
}

1)java实现计算斐波那契数列第n项值的方法.
其实就是一个递归算法,如下:public class Test {public static void main(String[] args) {System.out.println(f(6));}public static int f(int n){if(n==1||n==2){return 1;}else{return f(n-1)+f(n-2);}}} 1、Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java...

java用递归编程求斐波那契数列第n项
public static void main(String args[]){ int n,fn;\/\/n为第n项,fn为第n项的值 java.util.Scanner s = new Scanner(System.in);n=s.nextInt();fn=function(n);System.out.println("斐波那契数列第"+n+"项为:"+fn);} public static int function(int n){ if(n==1 || n==2)...

怎么求Fibonacci数第n位的位数?
int a[99]={1,1,};int count=1;printf("请输入第n位:");scanf("%d",&n);for(i=2;i<n;i++)a[i]=a[i-1]+a[i-2];printf("第%d位为:",n);printf("%d\\n",a[n-1]);while(0!=a[n-1]\/10){ a[n-1]=a[n-1]\/10;count++;} printf("第%d的位数为:",n);pr...

求高手帮助,写java的代码,来表示出 斐波那契数列 的前“n”项,要求...
public static int func(int n){ int a[]=new int[1000];a[0]=0;a[1]=1;if(n<=0){ System.out.println("error");return 0;}else if (n==1){ System.out.println(1);return 0;} if (n>1){ for (int i=2; i<=n ;i++) { a[i]=a[i-1]+a[i-2];} } for (...

如何用java语言输出斐波那契数列?
具体代码如下:public class Test { public int fib(int n){ if(n==1 || n==2)\/\/当n=1或2时 返回1 { return 1;} return fib(n-1)+fib(n-2);\/\/返回前两项的和 } public static void main(String[] args) { Test t = new Test();for (int i = 1; i <= 15; i++) ...

编写java循环程序,求1+1\/2+2\/3+3\/5+……,要求从键盘输入n的值,代表加...
这是一个斐波那契数列。首先要声明一个函数,计算斐波那契数列的,递归计算,很简单,假设为fibonacci(int number);number为第几个值。double sum = 0;for(int i = 1; i < 21; i++){ sum += fibonacci(i)\/fibonacci(i+1);} static int fibonacci(int number){ if (n == 1 || n ==...

用java递归 fn=f(n-1)+f(n-2) 求n
public class Demo2 { \/\/ 定义三个变量方法 public static void main(String[] args) { int a = 1, b = 1, c = 0;System.out.println("斐波那契数列前20项为:");System.out.print(a + "\\t" + b + "\\t");\/\/因为前面还有两个1、1 所以i<=18 for (int i = 1; i <= 18...

哪位大侠帮我看看我用java编写的5的阶乘,哪里错了,
用递归求阶乘是这样的:public static long g(int n){ if(n == 0||n == 1){ return 1;}else{ return n * g(n - 1)} } 如果求斐波那契数列第N项,不建议用递归,效率会很低 用迭代算法是这样:public static long g(int n){ if(n == 1||n == 2){ return n - 1;}else{...

java求助贴,求一个数列的第n项,斐波那契数列前10项为 1,1,2,3,5,8...
for(int d = 2;d<n;d++); \/\/ 这里有个分号, 要去掉

用JAVA数组来求斐波那契数列前20项: 1 1 2 3 5 8 ….
} System.out.println("\\n菲波那契数列的前20项和为:"+sum); } private static int fibo(int n) { if (n == 1) return 1; if (n == 2) return 1; return fibo(n - 1) + fibo(n - 2); }}数组法:public class Demo { public static void main...

相似回答