poj1008Maya Calendar

Posted いとう かいじ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj1008Maya Calendar相关的知识,希望对你有一定的参考价值。

模拟,先算出天数,再转化成另一个历。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char name[21][10] = {"0","imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk","ok","chuen","eb","ben","ix","mem","cib","caban","eznab","canac","ahau"};
int getmonth(char *a)
{
    int ASCII = 0,l = strlen(a);
    for (int i=0;i<l;i++)
        ASCII += a[i];
    switch(ASCII)
    {
        case 335:return 1;
        case 221:return 2;
        case 339:return 3;
        case 471:return 4;
        case 438:return 5;
        case 345:return 6;
        case 674:return 7;
        case 328:return 8;
        case 414:return 9;
        case 338:return 10;
        case 318:return 11;
        case 304:return 12;
        case 305:return 13;
        case 636:return 14;
        case 433:return 15;
        case 329:return 16;
        case 534:return 17;
        case 546:return 18;
        case 552:return 19;
    }
}
int getday(int day,int month,int year)
{
    int sumday = 0;
    for (int i=0;i<year;i++)
        sumday += 365;
    for (int i=1;i<month;i++)
        sumday += 20;
    return sumday+day;
}
int main()
{
    int T,day,year,sumday = 0;
    char month[10];
    char doc;
    cin>>T;
    cout<<T<<endl;
    while (T--)
    {
        cin>>day>>doc>>month>>year;
        sumday = getday(day,getmonth(month),year);
        cout<<sumday%13+1<< <<name[sumday%20+1]<< <<sumday/260<<endl;
    }
}

 

以上是关于poj1008Maya Calendar的主要内容,如果未能解决你的问题,请参考以下文章

[POJ] POJ1008 Maya Calendar

POJ1008 Maya Calendar

poj1008Maya Calendar

[POJ] #1008# Maya Calendar : 字符处理/同余问题

POJ1008 UVA300 UVALive5515 Maya Calendar日期计算

B - Maya Calendar(第二季水)