POJ1008 Maya Calendar

来源:互联网 发布:淘宝达人怎么直播视频 编辑:程序博客网 时间:2024/06/05 16:35

题目链接:http://poj.org/problem?id=1008


题目分析:

通过输入的Haab历日期,转化成Tzolkin历日期。

我将Haab历中的月份和holly年分别存入了二维数组中。在输入数据Haab历中的月份可以使用strcmp()函数来与二维数组值进行比较,转化。

要注意年月日的起始日期,有的是以0开始的。


源代码:

/*玛雅历*/#include <iostream>#include <string>using namespace std;int main(){int n;//转化的天数int y1 = 0, m = 0, d1 = 0;//Habb历中的年,月,日char dot;//输入的时候的.int a = 0, b = 0, y2 = 0, d2 = 0;//Tzolkin历中的天数字,天名称,年数, 天数char c1[20][10] = {"null", "pop", "no", "zip", "zotz", "tzec","xul", "yoxkin", "mol", "chen", "yax","zac", "ceh", "mac", "kankin", "muan","pax", "koyab", "cumhu", "uayet"};char c2[21][10] ={"null", "imix", "ik", "akbal", "kan", "chicchan","cimi", "manik", "lamat", "muluk","ok","chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac","ahau"};char month1[1][10];string day2;int i;cin>>i;cout<<i<<endl;while (cin>>d1>>dot>>month1[0]>>y1){for (int k = 1;k <= 19; k++){if (strcmp(month1[0], c1[k]) == 0){m = k;break;}}if (m <= 19){n = 365 * y1 + 20 * (m - 1) + d1;y2 = n / 260;//年数d2 = n % 260;//天数a = d2 % 13 + 1;b = d2 % 20 + 1;day2 = c2[b];cout<<a<<" "<<day2<<" "<<y2<<endl;}else{break;}}system("pause");return 0;}