HDOJ_ 2045_不容易系列之(3)—— LELE的RPG难题

AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#define Max 55
using namespace std;
long long int a[Max][1005];

void hanshu()
{
    memset(a,0,sizeof(a));
    int i,j;
    a[1][0]=3;a[2][0]=6;a[3][0]=6;
    for(i=4;i<=Max;i++)
    {
        for(j=0;j<=1000;j++)
            a[i][j]=a[i-1][j]+2*a[i-2][j];
        for(j=0;j<=1000;j++)
        {
            if(a[i][j]>=10)
            {
                a[i][j+1]+=a[i][j]/10;
                a[i][j]%=10;
            }
        }
    }
}

int main(void)
{
    hanshu();
    freopen("in.txt","r",stdin);
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int i=1000;
        while(i--)
        {
            if(a[n][i]!=0)
                break;
        }
        for(i;i>=0;i--)
            printf("%lld",a[n][i]);
        printf("
");
    }
    
    fclose(stdin);
    system("pause");ACd
    return 0;
}


AC代码(另一种版本):

#include <iostream>
#include <cstdio>
#define Max 55
using namespace std;
long long int a[Max];
/*

int main(void)
{
    a[1]=3;a[2]=6;a[3]=6;
    for(int i=4;i<=50;i++)
        a[i]=a[i-1]+a[i-2]*2;
    freopen("in.txt","r",stdin);
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        printf("%I64u
",a[n]); 
    }
    

    fclose(stdin);
    system("pause");
    return 0;
}
原文地址:https://www.cnblogs.com/phaLQ/p/9954804.html