作业帮 > 综合 > 作业

C语言.求斐波那契数#include#includeint f[500][150],s[500];//s表示位数int

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/28 03:29:03
C语言.求斐波那契数
#include
#include
int f[500][150],s[500];//s表示位数
int main()
{
int i,j=0,t;
f[1][0]=1;f[2][0]=2;
s[1]=1;s[2]=1;
for(i=0;i
C语言.求斐波那契数#include#includeint f[500][150],s[500];//s表示位数int
for(i=0;i<500;i++)
for(j=0;j<150;j++)
f[i][j]=0;你这里把f[1] f[2]都清0了,所以f[3]等于0.把这段代码移到前面去.另外for(j=0,t=0;;j++)
{f[i][j]=f[i-1][j]+f[i-2][j]+t;
if(f[i][j]>=10)   {t=f[i][j]/10;f[i][j]=f[i][j]%10;}//f[i][j]大于10,进位
if(t==0&&f[i-1][j]==0) break;//没有可以进的位 且上一个数是0这里循环结束的条件不对,f[i-1]中间某一位也可能为0,如果碰巧没有进位的话你到这里就提前终止循环了for (j=0, t=0; j<s[i-1]; j++) {
    f[i][j] = f[i-1][j] + f[i-2][j] + t;
    if (f[i][j] >= 10) { t=f[i][j]/10; f[i][j] = f[i][j] % 10; }
}
s[i] = s[i-1];
if (t) {
    f[i][s[i-1]] = t;
    s[i]++;
}