当前位置:首页 » 编程语言 » 用c语言生成斐波那契
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

用c语言生成斐波那契

发布时间: 2022-06-17 23:53:06

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

public class FeiBoMethod {

// 使用递归方法

private static int getSum(int num) {

if (num== 1 || num== 2)

return 1;

else

return getSum(num- 1) + getFibo(num- 2);

}

public static void main(String[] args) {

System.out.println("斐波那契数列的前13项为:");

for (int i = 1; i <= 13; i++) {

System.out.print(getSum(i) + " ");

if (i % 5 == 0)

System.out.println();

}

}

}

(1)用c语言生成斐波那契扩展阅读:

使用数组的方式实现

publicclassFeiBoMethod{

//定义数组方法

publicstaticvoidmain(String[]args){

intarr[]=newint[13];

arr[0]=arr[1]=1;

for(inti=2;i<arr.length;i++){

arr[i]=arr[i-1]+arr[i-2];

System.out.println("斐波那契数列的前13项如下所示:");

for(inti=0;i<arr.length;i++){

if(i%5==0)

System.out.println();

System.out.print(arr[i]+"\t");

❷ c语言编程,生成长度为100的斐波那契数列,并输出第73项的值

理论上是这样的,不过我的电脑运行太久了,可能程序设计不够好吧
#include<stdio.h>int
main(){int
F(int
a);int
i;for(i=0;i<=100;i++){printf("F%d=%d\n",i,F(i));}printf("F73=%d\n",F(73));return
0;}int
F(int
a){int
F0=0,F1=1,Fn,n;if(a==0)Fn=0;else
if(a==1)Fn=1;else{for(n=0;n<=a;n++)</p><p>{
</p><p>F0=0;</p><p>F1=1;</p><p>
Fn=F(n-1)+F(n-2);</p><p>
}}return
Fn;}

❸ C语言,利用递归调用,编程输出斐波那契数列 ,这个怎么编啊,求指教啊

#include<stdio.h>
voidmain()
{
intFibonacci(intn);
intn,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(" ");
}
}

intFibonacci(intn)//函数部分;
{
longintf;

if(n==1||n==2)
{
f=1;
}
else
if(n>=3)
f=Fibonacci(n-1)+Fibonacci(n-2);
returnf;
}

❹ c语言,利用数组生成斐波那契数列的前50项,然后求出m到k项之和,(0<m<=k<50),包括m和k项的值

#include<stdio.h>
#defineN50

voidFibonacci(inta[])
{
inti;
a[0]=a[1]=1;

for(i=2;i<N;++i)
a[i]=a[i-1]+a[i-2];
}

intmain()
{
intm,k,a[N];
intsum=0;
Fibonacci(a);

scanf("%d%d",&m,&k);
for(m=m-1;m<k;++m)
sum+=a[m];
printf("%d ",sum);

return0;
}

❺ C语言 简单斐波那契函数 程序编写

你声明的fb函数,它的输入参数是一个数组

intfb(inta[])

但是你在调用的时候,却将一个值赋值给它,

s=fb(a[i]);

因此输入参数不匹配,会出现错误。

建议,在fb函数中,专门设置一个输入参数,用来表明数列的第几项,即

intfb(inta[],intn)

调用的时候,修改调用方式:

s=fb(a,i);

❻ C语言编程:用递归和非递归法输出斐波那契数列

递归法:
#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;
}
非递归法:
#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语言编程 生成斐波那契数列并输出

#include <stdio.h>int main()
{ int a[10]={1,1}; int i,n=16; printf("1 1"); for(i=2;i<n;i++) { a[i]=a[i-1]+a[i-2]; printf(" %d",a[i]); } retrun 0;
}

❽ 费波纳切数列用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等。

❾ c语言求编程:菲波那契数

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

❿ 用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);
}