大数处理

//#include<bits/stdc++.h>
#include<iostream>
#include<string.h>
#include<stdio.h>

using namespace std;

int a[10000][1000];
#define MOD 100000000

int main()
{
    int n;
    a[1][0]=1;
    a[2][0]=1;
    for(int i=3;i<=9999;i++)
    {
        int c=0;
        for(int j=0;j<=999;j++)
        {
            a[i][j]=(a[i-1][j]+a[i-2][j]+c)%MOD;
            c=(a[i-1][j]+a[i-2][j]+c)/MOD;
        }
    }

    while(cin>>n)
    {
        int i;
        for(i=999;i>=0;i--)
        {
            if(a[n][i]!=0)
                break;
        }
        cout<<a[n][i];
        for(i--;i>=0;i--)
        {
            printf("%08d",a[n][i]);
        }
        printf("
");
    }
    return 0;
}

///53316291173
anytime you feel the pain.hey,refrain.don't carry the world upon your shoulders
原文地址:https://www.cnblogs.com/gaoss/p/5316406.html