• POJ1008Maya Calendar


    转载请注明出处:優YoU   http://user.qzone.qq.com/289065406/blog/1309435560

     

    大致题意:

    有中文版= = 我不多说

     

    解题思路:

    模拟题,细心点就好了,没难度。

    Habb历一年365

    Tzolkin历一年260

    先计算Habb历从第0天到输入日期的总天数sumday

    Sumday/day就是Tzolkin历的年份

    Tzolkin历的天数Name20一循环,先建立Tzolkin历天数Name1~20的映射,

    因此Sumday %20+1就是Tzolkin历的天数Name

    Tzolkin历的天数ID13一循环,且从1开始,则Sumday %13+1就是Tzolkin历的天数ID

     

     

     1 //Memory Time  
    2 //264K 0MS
    3
    4 #include<iostream>
    5 using namespace std;
    6
    7 /*得到Haab历月份对应的数字*/
    8 int GetMonth(char* month)
    9 {
    10 int ASCII=0;
    11 for(int i=0;month[i];i++)
    12 ASCII+=month[i];
    13
    14 switch(ASCII)
    15 {
    16 case 335:return 1; //pop
    17 case 221:return 2; //no
    18 case 339:return 3; //zip
    19 case 471:return 4; //zotz
    20 case 438:return 5; //tzec
    21 case 345:return 6; //xul
    22 case 674:return 7; //yoxkin
    23 case 328:return 8; //mol
    24 case 414:return 9; //chen
    25 case 338:return 10; //yax
    26 case 318:return 11; //zac
    27 case 304:return 12; //ceh
    28 case 305:return 13; //mac
    29 case 636:return 14; //kankin
    30 case 433:return 15; //muan
    31 case 329:return 16; //pax
    32 case 534:return 17; //koyab
    33 case 546:return 18; //cumhu
    34 case 552:return 19; //uayet
    35 }
    36 }
    37 /*计算Haab历从第0天到现在的天数*/
    38 int HaabDay(int day,int month,int year)
    39 {
    40 int sumday=0;
    41 for(int i=0;i<year;i++) //Haab历法一年有365天
    42 sumday+=365;
    43
    44 for(int j=1;j<month;j++)
    45 sumday+=20;
    46
    47 return sumday+day;
    48 }
    49
    50 int main(void)
    51 {
    52 char TzolkinDayName_Str[21][10]={"0","imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk","ok","chuen","eb","ben","ix","mem","cib","caban","eznab","canac","ahau"};
    53 int day;
    54 char doc; //注意输入格式有 "."
    55 char month[10];
    56 int year;
    57
    58 int test;
    59 cin>>test;
    60 cout<<test<<endl;
    61 while(test-- && (cin>>day>>doc>>month>>year)) //日期. 月份 年数
    62 {
    63 int sumday=HaabDay(day,GetMonth(month),year);
    64
    65 int TzolkinYear=sumday/260; //Tzolkin历法一年有260天
    66 int TzolkinDayName=sumday%20+1;
    67 int TzolkinDayId=sumday%13+1;
    68
    69 cout<<TzolkinDayId<<' '<<TzolkinDayName_Str[TzolkinDayName]<<' '<<TzolkinYear<<endl;
    70 }
    71 return 0;
    72 }

  • 相关阅读:
    JSON 使用
    JSON 语法
    JSON 简介
    什么是 JSON ?
    PHP 数组排序
    PHP 数组
    swan.after
    Page.after
    App.after
    AOP说明
  • 原文地址:https://www.cnblogs.com/lyy289065406/p/2121381.html
Copyright © 2020-2023  润新知