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

斐波那契数列的编程

发布时间: 2022-11-27 01:59:30

① 如何编程实现斐波那契数列

递归法:<pre t="code" l="cpp">#include<stdio.h>
void main()
{
int Fibonacci(int n);
int n,i,c=0;

printf("请输入n的值:");
scanf("%d",n);
for(i=1; i<=n; i++)
{
c = Fibonacci(i);
printf("%12ld",c);
if(i%4==0) //用于换行 4个一行;
printf("\n");
}
}

int Fibonacci(int n)//函数部分;
{
long int f;

if(n==1 || n==2)
{
f=1;
}
else
if(n>=3)
f = Fibonacci(n-1) + Fibonacci(n-2);
return f;
}非递归法:<pre t="code" l="cpp">#include<stdio.h>
void main()
{
int i,n;
int f[]= {1,1};
printf("请输入n的值:");
scanf("%d",n);
for(i=2; i<=n; i++)
f[i] = f[i-2] + f[i-1];
for(i=0; i<=n; i++)
{
if(i%5==0) printf("\n");
printf("%12d",f[i]);

}
printf("\n");
}递归可以使程序看起来比较简洁,但缺点是效率比较低,并且可能导致栈溢出,因此需要灵活使用递归。

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;

}

(2)斐波那契数列的编程扩展阅读:

在数学上,斐波那契数列以如下被以递推的方法定义: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语言,编程实现,求斐波那契数列,1,1,2,3,5,8,......的前20项及前20项和

C语言源程序如下:

#include<stdio.h>

int main()

{

int array[100]={1,1};//斐波那契数列前两个元素均为0

int i=0;//循环变量

int n=20;//数列需要求的个数

int sum = 0;//和变量

for(i=2;i<n+1;i++)//按递推原理依次求出后续元素

{

array[i]=array[i-1]+array[i-2];//数列原理

}

printf("arr[1]-arr[%d] = ", n);//提示输出数列元素

for (i = 0; i < n; i++)//遍历数列

{

printf("%d ",array[i]);//输出arr[1]-arr[n]元素内容

sum += array[i];//顺便进行求和

}

printf(" %d ", sum);//输出求和结果

return 0;

}

程序运行结果如下:


(3)斐波那契数列的编程扩展阅读:

利用递归原理进行求斐波那契数列的求解和求前n项和:

#include<stdio.h>

int fibonacci(int n) //递归函数

{

if (n == 0 || n == 1)

return 1;

if (n > 1)

return fibonacci(n - 1) + fibonacci(n - 2);

}

int main()

{

int i = 0;

for (i = 0; i < 30; i++)

{

printf("fibonacci(%d) = %d ", i, fibonacci(i));

}

return 0;

}

④ 斐波那契数列的程序编程

C++的:
#include <iostream.h>
void main()
{
int s1=1,s2=1,s,m=1;
while(m<=A) //A是你所要的斐波那契数列项数
{
if(m<3)
s=1;
else
{
s=s1+s2;
s1=s2;
s2=s;
}
cout<<s<<" ";
m++;
}
cout<<endl;
}

⑤ 斐波那契数列的编程

//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));
}

⑥ 求用C语言表达斐波那契数列

#include <stdio.h>

main( ){

long f1,f2,f;

int i,n;

scanf("%d",&n);

f1=f2=1;

if(n<=2)

f=1;

else

for(i=3;i<=n;i++){

f=f1+f2;
f1=f2;
f2=f;
}
printf("%ld ",f);
}

python做斐波那契数列。

直接创建一个类然后调用下面的def函数即可
#斐波那契数列
'''
第一位是1
第二位是1
第三位是2
公式位F(n)=f(n-1)+f(n-2)

'''

def get_Fibonacci_sequence(n):
'''输入n,遍历到第n位的斐波那契数列'''
a,b=0,1
if n>=3:#即等于>2 相当于1,2位特殊处理
for i in range(n-1):#操作次数是n-1,去除一次第一位的操作
c=a+b
a,b,=b,c
print(b)#这里选择先改变再输出,可以减少1次的循环

def get_Fibonacci_Num(n):
'''输入n,遍历到第n位的斐波那契数列的第n位数'''
a, b = 0, 1
if n >= 3: # 即等于>2 相当于1,2位特殊处理
for i in range(n - 1): # 操作次数是n-1,去除一次第一位的操作
c = a + b
a, b, = b, c
# 这里选择先改变再输出,可以减少1次的循环

return b
def get_Fibonacci_Num_recursion(n):
'''输入n,遍历到第n位的斐波那契数列的第n位数,递归实现'''
if n==1 or n==2:#特别注意,这里要用逻辑或判断,不能直接用或判断,

return 1
else:

return get_Fibonacci_Num_recursion(n-1)+get_Fibonacci_Num_recursion(n-2)

get_Fibonacci_sequence(11)
print(get_Fibonacci_Num(11))
print(get_Fibonacci_Num_recursion(11))

⑧ 费波纳切数列用C语言怎么编程

费波纳切数列,更通用的音译是斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……

数学上的定义是F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)

根据数学定义,就可以编写生成该数列的代码,如下:

#include<stdio.h>
#defineRANGE30
staticintfibonacci_values[RANGE];
voidmake_fibonacci_values(void)
{
inti;

fibonacci_values[0]=0;
fibonacci_values[1]=1;//赋值前两项
for(i=2;i<RANGE;i++)
fibonacci_values[i]=fibonacci_values[i-1]+fibonacci_values[i-2];//按照公式生成剩余项
}

intmain()
{
inti;

make_fibonacci_values();//调用生成函数
for(i=0;i<RANGE;i++)
{
printf("F(%d)=%d ",i,fibonacci_values[i]);
}
return0;
}

这个代码的功能是生成斐波那契数列前30项。

用一个数组把每项的值保存下来,然后依次计算。

事实上,只需要知道前两个值,就可以知道下一个值,这样保存两个值就可以计算出第三个值了。于是求斐波那契数列第n项的函数也可以写作:

#include<stdio.h>
intfibonacci(intn)
{
inti;
inta,b,c;

if(n<0)return0;//这其实是一种出错情况。
if(n==0)return0;
if(n==1)return1;//处理前两项的情况

a=0;
b=1;//对操作数赋初始值
for(i=2;i<=n;i++)//第一个计算结果其实是F(2),所以i的初始值用2
{
c=a+b;//这时的c即F(i)
a=b;
b=c;
}

returnc;
}

intmain()
{
intn;
scanf("%d",&n);//输入一个n
printf("F(%d)=%d ",n,fibonacci(n));//输出数列第n项值

return0;
}

同样,对于这类问题也可以用递归思想,使代码变得更简洁。

#include<stdio.h>
intfibonacci(intn)
{
if(n==0)return0;
if(n==1)return1;//处理前两项的情况

returnfibonacci(n-1)+fibonacci(n-2);
}

intmain()
{
intn;
scanf("%d",&n);//输入一个n
printf("F(%d)=%d ",n,fibonacci(n));//输出数列第n项值

return0;
}


以上是求斐波那契数列的三种常见的方式。值得注意的一点是,实际使用中要注意使用类型的范围,不要溢出。

比如在这几个程序中使用的是最简单的int类型,最大可以计算到F(46), 而F(47)已经超过了int所能表达的范围,会发生溢出。如果需要更大的值,那么就要改成使用更多字节的类型。比如long long等。

⑨ python编程,斐波那契数列

婓波那契数列(前两个数的和是第三个数)
def fib(num):
fibs=[0,1]
#num=input('请输入婓波那契数列中的数据个数:')
for i in range(int(num)-2):
fibs.append(fibs[-2]+fibs[-1])
print(fibs)
print(fibs[-2])
fib(10)

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

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

热点内容
功能点估算法是 发布:2024-05-02 16:24:38 浏览:165
b站非法访问 发布:2024-05-02 16:09:59 浏览:456
宝马523压缩机 发布:2024-05-02 16:00:40 浏览:611
冒险岛m韩服安卓汉化包哪里搞 发布:2024-05-02 16:00:24 浏览:955
云服务器托管平台 发布:2024-05-02 15:55:16 浏览:860
linux查看服务状态 发布:2024-05-02 15:55:15 浏览:933
phpfirebird 发布:2024-05-02 15:45:55 浏览:125
思科服务器怎么修改imc地址 发布:2024-05-02 15:35:27 浏览:770
强制删除文件夹的工具 发布:2024-05-02 15:34:34 浏览:770
sql存储过程调用存储过程 发布:2024-05-02 15:34:33 浏览:897