① 用c语言程序计算斐波那契数列
main()
{
int a=0;
int b=1;
int c,i;
int s=a+b;
for(i=3;i<=21;i++)
{
c=a+b;
s=s+c;
a=b;
b=c;
}
printf("%d",s);
}
② 用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();
}
}
}
(2)如何利用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语言
#include <stdio.h>
int fn(int a){
if (a==1) return 1;
else if (a==2) return 2;
else return fn(a-1)+fn(a-2);
}
void main (){
for (int i=1;i<=50;i++)
printf("%d::%d ",i,fn(i));
}
④ c语言编写计算斐波那契(Fibonacci)
斐波那契数列为:0,1,1,2,3,5,8,13.....
/*你的程序*/
#include<stdio.h>
int fib(int n,int f)
{
if(n==1&&n==2) /*n不可能同时等于1和2,所以递归无终点,会一直递归下去。*/
{f=1;} /*正确的斐波那契数列是n==1时f=0,n==2时f=1*/
else
{f=fib(n-1,f)+fib(n-2,f);}
return f;
}
int main()
{
int n,f; /*n没有赋初始值*/
f=fib(n,f);
printf("%d",f);
return 0;
}
/*改正后的程序*/
#include<stdio.h>
int fib(int n,int f)
{
if(n==1)
{
f=0;
}
else if(n==2)
{
f=1;
}
else
{
f=fib(n-1,f)+fib(n-2,f);
}
return f;
}
int main()
{
int n,f;
scanf("%d,%d",&n,&f);
f=fib(n,f);
printf("%d",f);
return 0;
}
⑤ C语言 数组 斐波那契数列
#include "stdafx.h" //这是 VS 预编译头。其他系统删除。
#include<stdio.h>
#include<stdlib.h> //使用 system("pause"); 时需要。
//MS 否决了 scanf 等函数,加上下句,仍然可用。其他系统删除。
#pragma warning(disable:4996)
//问题:斐波那契数列的定义为: F1=1,F2=1,F(n)=F(n-2)+F(n-1)
int Fibonacci(int n)
{
if (n == 1)
return 1;
if (n == 2)
return 1;
return Fibonacci(n - 2, f1, f2) + Fibonacci(n - 1, f1, f2);
}
// VS 标准主函数声明,其他系统请根据系统更改。
int _tmain(int argc, _TCHAR* argv[])
{
int i, k, d[40];
scanf("%d", &k);
for (i = 0; i < k; i++)
{
scanf("%d", &d[i]);
}
for (i = 0; i < k; i++)
{
printf("%d\n", Fibonacci(d[i]));
}
system("pause"); //防止窗口一闪而过
return 0;
}
⑥ C语言 斐波那契数列怎么写
#include<stdio.h>
intfei(intindex)//数组实现
{
if(index<1)
{
return-1;
}
if(index<3)
{
return1;
}
int*a=newint[index];
a[0]=a[1]=1;
for(inti=2;i<index;i++)
a[i]=a[i-1]+a[i-2];
intm=a[index-1];
deletea;//释放内存空间
returnm;
}
inttou(inti)//取第一位
{
while(i>9)
i/=10;
returni;
}
intmain()
{
intn,a[100];
scanf("%d",&n);
for(inti=0;i<n;i++)
scanf("%d",&a[i]);
for(inti=0;i<n;i++)
{
if(fei(a[i])>9)
printf("%d%d ",tou(fei(a[i])),fei(a[i])%10);
else
printf("%d ",fei(a[i]));
}
}
⑦ 斐波那契数列的通项公式在C语言中如何表达
斐波那契数列在数学上的通项公式为
An=An-1+An-2
在C语言中,根据算法实现不同,可以有很多种表达方式。以计算斐波那契第N项值为例,说明如下。
一、以数组方式实现:
intfn(intn)
{
int*a,i,r;
a=(int*)malloc(sizeof(int)*n);//分配动态数组。
a[0]=1;
a[1]=1;//初始化前两项。
for(i=2;i<n;i++)
{
a[i]=a[i-1]+a[i-2];//这里就是通项公式的一种实现形式。
}
r=a[n-1];//保存结果
free(a);//释放动态数组
returnr;//返回结果值。
}
二、以递归函数形式:
intfn(intn)
{
if(n==0||n==1)return1;//前两项固定值。
returnfn(n-1)+fn(n-2);//通过递归调用实现通项公式。
}
三、注意事项:
1、方法有很多,不可能穷举完成,写代码时要灵活使用。
2、例子中以int保存,限于整型范围,计算很大值时会出现溢出。 根据实际需要选择类型。