當前位置:首頁 » 編程語言 » c語言求fibonacci數列
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求fibonacci數列

發布時間: 2022-11-30 06:15:01

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

② C語言:編寫函數,根據整數參數n,求Fibonacci數列第n項的值。

/*斐波那契數列,前兩項之和等於第3項*/

#include "stdio.h"

int fun(int n)

{

int a=1,b=1;

int r=0;

if(n==1||n==2)

return 1;

for(int i=2;i<=n;i++)

{

r=a+b;

if(i%2==0)

a=r;

else

b=r;

}

return r;

}

main()

{ int k,i;

scanf("%d",&k);

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

printf("%10d",fun(i));

printf(" ");

}

③ 用c語言計算fibonacci數列的前50項和

#include"stdio.h"

intmain(){

longintf1,f2,i;

f1=1;f2=1;//賦初始值

for(i=1;i<=20;i++){//循環20次,一次兩個,結果為前50項

printf("%12d%12d",f1,f2);//輸出兩項

f1=f1+f2;f2=f2+f1;//計算下面兩項

if(i%2==0)//一行四個好看用

printf(" ");

}

return0;

}

(3)c語言求fibonacci數列擴展閱讀

C語言程序Fibonacci數列計算兔子:

#include<stdio.h>

#defineYEAR12

intmain()

{

intf[YEAR+1]={0,1,2};//1月和2月兔子對數分別初始化為1,2,不使用f[0]

intmonth;

for(month=3;month<=YEAR;month++)//從3月份開始計算每個月總兔數

{

f[month]=f[month-1]+f[month-2];

}

for(month=1;month<=YEAR;month++)//輸出12個月的總兔對數

{

printf("%d ",f[month]);

}

printf(" sum=%d ",f[YEAR]);//輸出年末的兔子總數

return0;

}

④ C語言 計算fibonacci數列

C語言程序代碼如下:

#include <stdio.h>


main()


{


long int f1,f2;


int i;


f1=1;


f2=1;


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


{
printf("%ld %ld ",f1,f2);


if (i%3==0) printf(" ");


f1=f1+f2;


f2=f2+f1;

}
return 0;




}

if語句是使輸出6個數後換行。因為i是循環變數,當i為偶數時換行,因此i每隔2換一次行相當於每輸出6個數後換行。



輸出結果如下



⑤ 如何使用C語言輸出Fibonacci數列

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0;
int limit = 10; // 輸出前10個fibonacci數
int pre1 = 1; // 當前計算值前面第二個fibonacci數
int pre2 = 1; // 當前計算值前面一個fibonacci數
int res; // 當前計算值
for (i; i < limit; i++)
{
if (i == 0 || i == 1)
{
// 前兩個fibonacci數是1
printf("1 ");
}
else
{
res = pre1 + pre2;
printf("%d ", res);
pre1 = pre2;
pre2 = res;
}
}
return 0;
}

⑥ C語言編程:用函數遞歸法求Fibonacci數列的前n項·

#include <stdio.h>

long int F(int n)

{

if (n==1||!n) {

return n;

}

else return F(n-1)+F(n-2);

}

int main(void)

{

int i,n;

printf("n=");

scanf("%d",&n);

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

printf("%-10ld",F(i));

}

return 0;

}

在數理邏輯和計算機科學中

遞歸函數或μ-遞歸函數是一類從自然數到自然數的函數,它是在某種直覺意義上是"可計算的" 。事實上,在可計算性理論中證明了遞歸函數精確的是圖靈機的可計算函數。遞歸函數有關於原始遞歸函數,並且它們的歸納定義(見下)建造在原始遞歸函數之上。但是,不是所有遞歸函數都是原始遞歸函數 — 最著名的這種函數是阿克曼函數。

以上內容參考:網路-遞歸函數

⑦ c語言 fibonacci數列

#include<stdio.h>
int f(int n)
{

if (n==1|| n==2)
{

return (1);

}
else
{

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

}
}

void main()
{
int n,i;
printf("input n\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
printf("%d\n",f(i));
}

⑧ c語言中,怎樣求Fibonacci數列以及從寫入了Fibonacci數列的文件中提取出所需位數的數

要求能輸出前200位的數,必須使用大數加法。下面是一個例子:
#include<stdio.h>
#include<iostream>
using namespace std;
int a[201][101]={0};
int b[201][101]={0};
int c[201][101]={0};
int n;
int main()
{
int i,j,k;
scanf("%d",&n);
for(k=1;k<=n;k++)
{
if(k<3)
{printf("%d\n",k);
}
else
{
c[k][1]=2;
b[k][1]=1;
for(i=1;i<=k-2;i++)
{for(j=1;j<=100;j++)
{a[k][j]=b[k][j];
b[k][j]=c[k][j];
c[k][j]=0;}
for(j=1;j<=100;j++)
{c[k][j]=c[k][j]+a[k][j]+b[k][j];
if(c[k][j]>=10)
{c[k][j]=c[k][j]-10;
c[k][j+1]=1;}
}
}
i=100;
while(c[k][i]==0) i--;
for(i=i;i>=1;i--)
printf("%d",c[k][i]);
printf("\n");
}
}
system("pause");
return 0;
}

⑨ C語言編程:用函數遞歸法求Fibonacci數列的前n項·

#include
<stdio.h>
#define
COL
10
//一行輸出10個
long
scan()
{
//輸入求fibonacci函數的第N項
int
n;
printf("Input
the
N
=
");
scanf("%d",&n);
return
n;
}
long
fibonacci(int
n)
{
//fibonacci函數的遞歸函數
if
(0==n||1==n)
{
//fibonacci函數遞歸的出口
return
1;
}
else
{
return
fibonacci(n-1)+fibonacci(n-2);
//反復遞歸自身函數直到碰到出口處再返回就能計算出第n項的值
}
}
int
main(void)
{
int
i,n;
n
=
scan();
printf("Fibonacci數列的前%d項\n",
n);
for
(i=0;
i<n;)
//輸出fibonacci函數前n項每項的值
{
printf("%-10ld",fibonacci(i++));
//調用遞歸函數並且列印出返回值
if(i%COL==0)
{
//若對COL取余等於0就換行,也就是控制每行輸出多少個,
//而COL=10就是每行輸出10個
printf("\n");
}
}
printf("\n");
return
0;
}

⑩ C語言如何用數組求Fibonacci數列的前N項和

#include&lt;stdio.h&gt;

int main()

{

int i,f[21]={1,1};//對最前面兩個元素f[0]和f[1]賦初值1

for(i=2;i&lt;21;i++)

{

f&lt;i&gt;=f[i-2]+f[i-1];//先後求出f[2]~f[20]的值

}

for(i=0;i&lt;21;i++)

{

if(i%5==0)//控制每輸出5個數後換行

{

printf(" ");

}

printf("%d ",f&lt;i&gt;);//輸出一個數

}

printf(" ");

return 0;

}

(10)c語言求fibonacci數列擴展閱讀:

printf()函數的調用格式為:printf("&lt;格式化字元串&gt;",&lt;參量表&gt;)。

其中格式化字元串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。

參量表是需要輸出的一系列參數,其個數必須與格式化字元串所說明的輸出參數個數一樣多,各參數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。

比如:

int a=1234;

printf("a=%d ",a);

輸出結果為a=1234。

scanf()是C語言中的一個輸入函數。與printf函數一樣,都被聲明在頭文件stdio.h里,因此在使用scanf函數時要加上#include&lt;stdio.h&gt;。

int scanf(const char*restrict format,...);

函數scanf()是從標准輸入流stdin(標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。

如:

scanf("%d%d",&a,&b);

函數返回值為int型,如果a和b都被成功讀入,那麼scanf的返回值就是2。