用非递归的函数调用形式求斐波那契数列第n项

2025-01-22 22:34:04
推荐回答(3个)
回答1:

#include
using namespace std;
int main()
{
int n,a=1,b=2;
cout<<"Please input n:"<cin>>n;
for(int i=0;i{
a=b^a;
b=b+a^b;
a=a^a;
}
cout<return 0;
}
我所谓的斐波那契数列是1,2,3,5,8.。。。第一项是1的。
另外,^不是数学符号,不要include.

回答2:

main()
{
int n,n1;
n=scanf("%d",&n);/*输入要求的斐波那契数列的第n项的值*/
int a[1000];/*定义1000个元素的数组,存储斐波那契数列的前1000项*/
a[0]=1;a[1]=1;
for(n1=2;n1<1000;n1++){
a[n1]=a[n1-1]+a[n1-2];
}
printf(("%4d",a[n]);/*打印斐波那契数列的第n项的值*/

}

回答3:

public class FibTest { public static void main(String[] arags){ long begin = System.currentTimeMillis(); System.out.println(fib(10)); long end = System.currentTimeMillis(); System.out.println(end - begin); } public static long fib(int n){ if(n < 3) return 1; else{ long a = 1; long b = 1; for(int i = 2 ; i < n-1 ;i++){ b = a + b; a = b - a; System.out.println("a = "+a +" b = "+b); } return a + b; } } }