哈理工OJ 2170 大斐波那契数(大数加法)

来源:互联网 发布:sql查询分析执行 编辑:程序博客网 时间:2024/06/06 12:54
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int f[1005][300];int main(){    int n,pi;    scanf("%d",&n);    while(n--)    {        int t;//用t计录第一个不为零数的位置        int i,j,c=0;        memset(f,0,sizeof(f));//数组清零        f[1][299]=1;        f[2][299]=1;        scanf("%d",&pi);        for(i=3;i<=pi;i++)        {            for(j=300;j>=0;j--)//大数的加法            {                f[i][j]=f[i-1][j]+f[i-2][j]+c;//加上上一次结果的差                c=0;                if(f[i][j]>=10)//大于十就求差                {                    c=1;                    f[i][j]=f[i][j]-10;                }            }        }        //下面用到了t        for(j=0;j<=299;j++)        {            if(f[pi][j]!=0)            {                t=j;                break;            }        }        for(j=t;j<=299;j++)//从第一个不为零的位置输出        {            printf("%d",f[pi][j]);        }        printf("\n");    }    return 0;}
0 0
原创粉丝点击