c语言 fibonacci
1、斐波那契数列问题,做为学习一般都用递归来写,默认情况下都设置程序运行时默认的栈空间大小为1MB。
2、下面是递归调用的例程。
#includestdio.h
int fibo(int a)
{
if(a=2)
return 1;
else
return fibo(a-1)+fibo(a-2);
}
int main()
{
int a;
while(scanf(“%d”,a)!=EOF)
printf(“%d\n”,fibo(a));
return 0;
}
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(“\n”);
f1=f1+f2;
f2=f2+f1;
}
return 0;
}
if语句是使输出6个数后换行。因为i是循环变量,当i为偶数时换行,因此i每隔2换一次行相当于每输出6个数后换行。
输出结果如下
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; in; i++) {
printf(“%-10ld”,F(i));
}
return 0;
}
在数理逻辑和计算机科学中
递归函数或μ-递归函数是一类从自然数到自然数的函数,它是在某种直觉意义上是”可计算的” 。事实上,在可计算性理论中证明了递归函数精确的是图灵机的可计算函数。递归函数有关于原始递归函数,并且它们的归纳定义(见下)建造在原始递归函数之上。但是,不是所有递归函数都是原始递归函数 — 最著名的这种函数是阿克曼函数。
以上内容参考:百度百科-递归函数
求C语言中斐波那契数列源程序及解释?
斐波那契数列定义:
F0 = 0
F1 = 1
Fn = Fn-1 + Fn-2 (n≥2)
直白的讲,第0项、第一项分别约定为0、1,自第2项开始,每一项等于前两项之和。
#include stdio.h
#define MAX 10 /*费波那契数列项数上限*/
void fibonacci (unsigned __int64 f[], int n) { /*生成n项费波那契数列,n=0为起始*/
int i;
f[0] = 0; /*F0=0*/
f[1] = 1; /*F1=1*/
for (i=2; i=n; i++) /*Fn=Fn-1+Fn-2(n=2)*/
f[i] = f[i-1] + f[i-2];
}
int main(void) {
unsigned __int64 f[MAX];
int i;
fibonacci (f, MAX);
for (i=0; i=MAX; i++)
printf (“F%d = %I64u\n”, i, f[i]);
printf(“\n”);
getch (); /*屏幕暂留*/
return 0;
}
运行结果
用c语言编写程序,用数组输出Fibonacci数列前20项
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。
2、定义变量和数组:#includestdio.h,void main(){ long i, j, k1, k2, k3, a[10] ={0}, num, m, n, sum; /*定义变量及数组为长整形*/。
3、输入一个数表示范围: printf(“请输入一个数表示范围:\n”); scanf(“%ld”, num); /*从键盘中输入要求的范围*/。
4、对该范围内的数逐个试探:printf(“结果是:”); for (j = 0; j num; j++) /*对该范围内的数逐个试探*/。
5、判断该数的位数: while (m != 0) /*判断该数的位数*/。
6、求每一部分积之和并输出自守数。
7、输出最后的结果。