C语言,写入斐波那契数到自命名文件

C语言,写入斐波那契数到自命名文件,第1张

因为要求是写入二进制文件,所以创建或打开文件的 *** 作应该如下:

fp = fopen(str, "wb+");

从prnt函数可以知道,文件里是以整形int的二进制格式存储数列值,没有分隔符,所以写入文件用以下语句:

fwrite(A+i,sizeof(int),1,fp);/start/

int i;

int A[20]={1,1};

FILE fp;

fp = fopen(str, "wb+");

if (fp == NULL)

{

exit(0);

}

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

{

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

}

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

{

   fwrite(A+i,sizeof(int),1,fp);

}

fclose(fp);

/end/

斐波那契数列为:0,1,1,2,3,5,8,13

/你的程序/

#include<stdioh>

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<stdioh>

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;

}

#include<stdioh>

#include<stdlibh>

int f(int n)

{

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

{

return 1;

}

else

{

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

}

}

int main()

{

int n;

scanf("%d", &n);

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

{

printf("%d ", f(i));

}

system("pause");

return 0;

}

我可以得知以下几点:

斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13 …,从第三项开始,每一项都等于前两项之和。

用C语言求斐波那契数列的一种常见方法是使用递归函数,即定义一个函数fib(n),返回第n项的值,然后在函数体中调用fib(n-1)和fib(n-2)。

这种方法虽然简单,但是效率很低,因为会重复计算很多次相同的值。例如,要计算fib(5),就要先计算fib(4)和fib(3),而计算fib(4)又要先计算fib(3)和fib(2),这样就浪费了时间和空间。

另一种方法是使用数组或变量来存储已经计算过的值,避免重复计算。例如,定义一个数组a[500],初始化a[0]=1,a1=1,然后用循环从第三项开始依次计算并存入数组中:a[i]=a[i-1]+a[i-2]。

以上就是关于C语言,写入斐波那契数到自命名文件全部的内容,包括:C语言,写入斐波那契数到自命名文件、c语言编写计算斐波那契(Fibonacci)、编写一段C语言程序:利用函数的递归调用求斐波那契数列,该数列的公式如下:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9472461.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存