大斐波那契

来源:互联网 发布:java 构建工具有哪些 编辑:程序博客网 时间:2024/05/29 18:32
#include<stdio.h>//大斐波那契#include<string.h>int a[1010][510];void fib(){    int s,c;    a[1][0]=1;a[2][0]=1;    for(int i=3;i<1001;i++)    {        c=0;        for(int j=0;j<=500;j++)//以下步骤模拟大数计算,初始化斐波那契数列        {            s=a[i-1][j]+a[i-2][j]+c;  //令 个位数 与 进位 相加            a[i][j]=s%10;  //存储各位上的数            c=s/10; //大于10 存储进位数字        }    }}int main(){    fib();  //调用函数    int n,p,i;    scanf("%d",&n);    while(n--)    {        scanf("%d",&p);        for(i=500;i>=0;i--)//找到数值的最后一位        {            if(a[p][i])               break;        }        for(;i>=0;i--)// 注意上面的函数计算的值的数位是逆序的        {            printf("%d",a[p][i]);        }        printf("\n");    }    return 0;}