zoukankan      html  css  js  c++  java
  • PKU1008

    题名:玛雅历

    题意:历法转换 。

    代码:

    // 1008.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    
    #include <iostream>
    using namespace std;
    class data
    {
    public:
        char day[200];
        char mon[200];
        char year[200];
    };
    
    int main(int argc, char* argv[])
    {
        int num=0;
        cin>>num;
        char temp[256]={0};
        data *s=new data[num];
        for (int i=0;i<num;i++)
        {
            cin>>s[i].day>>s[i].mon>>s[i].year;
        }
        cout<<num<<endl;
        string *sday=new string[260];
        int tmon=0,tday=0;
        int count=0;
        int o=0,p=0;
        string ma[20]={"imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk","ok","chuen","eb","ben","ix","mem","cib","caban","eznab","canac","ahau"};
        while(1)//计算Tzolkin历表对应一年中的天数
        {
            o++;
            p++;
            if(o>13)
                o=1;
            if(p>20)
                p=1;
            char temp[100];
            sprintf(temp,"%d ",o);
            sday[count]=temp;
            sday[count]+=ma[p-1];
            count++;
            if(count==260)
                break;
    
        }
        string HaabMonDic[19]={"pop","no","zip","zotz","tzec","xul","yoxkin","mol","chen","yax","zac","ceh","mac","kankin","muan","pax","koyab","cumhu","uayet"};
        for (int i=0;i<num;i++)
        {
            int day=atoi(s[i].day)+1;
            string month=s[i].mon;
            int imonth=0;
            string year=s[i].year;
            int iyear=atoi(year.c_str());
            for (int j=0;j<19;j++)
            {
                if(month.compare(HaabMonDic[j])==0)
                {
                    imonth=j;
                    break;
                }
            }
            int allday=iyear*365+imonth*20+day;
            int tyear=allday/260;
            int tt=allday%260;
            if(tt==0)//如果是最后一天,需要转换
            {
                tyear--;
                tt=260;
            }
            printf("%s %d
    ",sday[tt-1].c_str(),tyear);
        }
        delete []sday;
        delete []s;
        return 0;
    
    
    }

    总结:想当然,忘记要转换的历法最后一天要特殊处理,第一种历法实际上是有19个月。马虎粗心大意,哎

  • 相关阅读:
    Insertion Sort Gym
    Codeforces Round #524 (Div. 2) C. Masha and two friends 思路
    PTA 数据结构——是否完全二叉搜索树
    Crane UVA
    Unidirectional TSP UVA
    排序二叉树的建立,查询与删除
    The Tower of Babylon UVA
    DAG上的动态规划——嵌套矩阵问题
    Paper Folding UVA
    多图片上传插件
  • 原文地址:https://www.cnblogs.com/alphaxz/p/3483284.html
Copyright © 2011-2022 走看看