斐波那契数列c++编程编写c++程序求斐波那契数列的第n项和前n项和斐波那契数列也没给出最后不用递归 效率太低

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 18:48:56
斐波那契数列c++编程编写c++程序求斐波那契数列的第n项和前n项和斐波那契数列也没给出最后不用递归 效率太低

斐波那契数列c++编程编写c++程序求斐波那契数列的第n项和前n项和斐波那契数列也没给出最后不用递归 效率太低
斐波那契数列c++编程
编写c++程序求斐波那契数列的第n项和前n项和
斐波那契数列也没给出
最后不用递归 效率太低

斐波那契数列c++编程编写c++程序求斐波那契数列的第n项和前n项和斐波那契数列也没给出最后不用递归 效率太低
我给你讲一下思路:
在Fibonacci数列中,F[0]=0,F[1]=1,F[n]=F[n-1]+F[n-2](n>=2).举例来说,Fibonacci数列的前十个数是
0,1,1,2,3,5,8,13,21,34,…
我们可以用利用矩阵乘法来计算Fibonacci的第n项 :
|F[n+1] F[n] | = |1 1|.|1 1|.|1 1|...共n个
|F[n] F[n-1] | |1 0| |1 0| |1 0|
用这个方法就可以避免递归了.
我以前写了一个程序,因为为了避免高精度的麻烦,就直接取的是斐波那契数列的后四位.你看看,把它改成高精度就可以了.
#include
//#include
#include
using namespace std;
int i,c[10001];
int a[2][2]={{1,1},{1,0}};
int b[2][2];
void trial(int n)
{
if(n==1) return;
else{
if(n%2==1)
{
c[i]=1;i++;trial(n-1);
}
if(n%2==0)
{
c[i]=2;i++;trial(n/2);
}
}
}
void fib(int n)
{
int i,j;
memset(c,0,sizeof(c));
trial(n);
for(i=10000;i>=0;i--)
{
if(c[i]!=0)break;
}
for(j=i;j>=0;j--)
{
if(c[j]==1)
{
b[0][1]=a[0][0]%10000;
b[0][0]=(a[0][0]+a[0][1])%10000;
b[1][1]=a[0][1]%10000;
a[0][1]=b[0][1];
a[0][0]=b[0][0];
a[1][1]=b[1][1];
}
if(c[j]==2)
{
b[0][0]=(a[0][0]*a[0][0]+a[0][1]*a[0][1])%10000;
b[0][1]=(a[0][0]*a[0][1]+a[0][1]*a[1][1])%10000;
b[1][1]=(a[1][1]*a[1][1]+a[0][1]*a[0][1])%10000;
a[0][0]=b[0][0];
a[0][1]=b[0][1];
a[1][1]=b[1][1];
}
}
}
int main()
{
int N;
cin>>N;
if(N==0){cout

斐波那契数列编程问题编写个程序计算此数列的前30个数,且每行输出5个数 斐波那契数列c++编程编写c++程序求斐波那契数列的第n项和前n项和斐波那契数列也没给出最后不用递归 效率太低 斐波那契数列前30项奇数的个数.求一个c语言程序 用C语言编程 输出斐波那契数列的第42项谢谢了, VB:斐波那契数列第一项是1,第二项是1,用递归算法编写一个程序,求数列前N项的和 C#编写程序 证明斐波那契数列的数列前后项的比值无限接近0.618 求用C语言表达斐波那契数列本人大一新生..编程作业需要这个 不太懂怎么表达递推公式 求高手赐教 c语言中,.编写程序求斐波那契数列的第n项和前n项之和.大家看好是【第】n项的值和前n项的合= =.编写程序求斐波那契数列的第n项和前n项之和.斐波那契数列是形如0,1,1,2,3,5,8,13,...其通项为:F[0] 求出斐波那契数列前20项的C语言程序 斐波那契数列用C程序如何设计无 c语言 求出斐波那契(fibonacci)数列的第20项编写程序,求出斐波那契(fibonacci)数列的第20项.斐波那契数列的规律是:每个数等于前两个数之和.其中,第1项和第2项都等于1.最好用递归调用 数列1,1,2,3,5,8,13,.称为斐波那契数列.编程计算第20个数字是多少(用c#编写) 用java 编写一个程序 列出100之内的斐波那契数列!急用.大侠救命啊! 用C语言编程:编写一函数求Fibnacci数列中fib(n)的值 C语言:斐波那契数列.请编写一个递归函数int fibo(int n)函数得到它的第n项,之后在主函数中调用fibo()输出它的前30项值,每行输出5个数据.请编写程序实现上述功能,并回答问题:(1)递归函数由哪 编写一个程序,物体从高度为H做自由落体运动,求物体落地需要的时间C语言编程问题, 用C语言编程 斐波那契数列:1,1,2,3,5,8,13…,输出前13项,每行输出5个数. 编写程序:斐波那契数列的前几项是:1,1,2,3,5,8,13,21,34……斐波那契数列的前几项是:1,1,2,3,5,8,13,21,34……(规律:从第三项开始,每一项的值是前两项的和),编写程序输出该数列的前10项.(