当前位置:首页 » 编程软件 » 编程斐波那契

编程斐波那契

发布时间: 2022-06-06 13:54:13

‘壹’ 编程求出前20个斐波那契(Fibonacci)数,存入数据段FN开始的区域中

写了一段fortran代码。

附代码和输出结果。


‘贰’ 用c语言编程 斐波那契数列:1,1,2,3,5,8,13…,输出前13项,每行输出5个数。

1、首先打开C语言软件,在主函数main中,声明定义一个长度为20个元素的数组,并且给第0个第1个元素赋值为1。

‘叁’ 斐波那契数列c++编程

我给你讲一下思路:
在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<iostream>
//#include<cmath>
#include<memory>
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<<"0";return 0;}
fib(N);
cout<<a[0][1];
return 0;
}

‘肆’ C语言编程:写出斐波那契数列的前40个数

#include <stdio.h>

int main()

{

int f1 = 1;

int f2 = 1;

int f3,i;

printf("%d %d ",f1,f2);

for(i = 1; i <= 38; i++)

{

f3 = f1 + f2;

printf("%d ",f3);

f1= f2;

f2= f3;

}

printf(" ");

return 0;

}

(4)编程斐波那契扩展阅读:

在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)

递推公式

斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2)

显然这是一个线性递推数列。

平方与前后项

从第二项开始,每个偶数项的平方都比前后两项之积少1,每个奇数项的平方都比前后两项之积多1。

‘伍’ c语言求编程:菲波那契数

=
=朴素算法也就能算出30几个斐波那契数,这题得用高精度
高精度是个非常实用,而且非常重要的算法,建议多花些时间学,这题先放着,把高精度弄熟了再做

‘陆’ 斐波那契数列的编程

//fib
#include<stdio.h>

int Fib(int n)
{
if(n==1) return 1;
if(n==0) return 1;
return Fib(n-1)+Fib(n-2);
}

int main()
{
int n;
scanf("%d",&n);
printf("%d\n",Fib(n));
}

热点内容
苹果笔记本配置好的有哪些 发布:2025-05-19 22:08:57 浏览:14
oracle存储过程中批量修改表结构 发布:2025-05-19 22:02:22 浏览:520
php支付宝sdk 发布:2025-05-19 22:01:06 浏览:602
云扫墓源码 发布:2025-05-19 22:00:32 浏览:593
executeupdatesql 发布:2025-05-19 21:58:36 浏览:217
中国电信如何转人工密码是多少 发布:2025-05-19 21:44:54 浏览:209
求阶乘的c语言 发布:2025-05-19 21:15:20 浏览:965
话唠安卓哪里下载 发布:2025-05-19 20:27:04 浏览:166
疯狂android讲义光盘 发布:2025-05-19 20:12:31 浏览:153
安卓手机怎么下载圈点 发布:2025-05-19 20:08:11 浏览:473