C语言中斐波那契数列问题(主要问题是如何处理数据的溢出,本人对大数运算一窍不通TAT)

编写一个程序,可以求200个数以内的任意个数的Fibonacci数列,将结果在屏幕上输出,每行输出三个数,并用一文本文件将结果用同样的格式保存。要求可以从文件中取出数列中... 编写一个程序,可以求200个数以内的任意个数的Fibonacci数列,将结果在屏幕上输出,每行输出三个数,并用一文本文件将结果用同样的格式保存。
要求可以从文件中取出数列中某一项的值(应该是用结构体)
相关知识:位运算
文件处理
结构体
展开
 我来答
匿名用户
2012-06-22
展开全部
大数求斐波那契数列问题
#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;
}
追问
程序可以完美运行。能否在关键步骤或者难点处解释一下呢~比如如何处理溢出的方法、谢谢
追答
主要是这段程序,从最低位开始相加,逢10高位进1,低位减10,现在定义长度是100位,实际长度50即可满足200个数要求。
for(j=1;j=10)
{c[k][j]=c[k][j]-10;
c[k][j+1]=1;}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式