您的位置:首页 > 编程语言 > C语言/C++

POJ 1008_Maya Calendar

2016-01-07 22:01 337 查看
  没什么算法技巧,理解题意,and convert the dates from the Haab calendar to the Tzolkin calendar. 

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
using namespace std;

map<string, int> Haab;
void init(){
Haab.insert(pair<string, int>("pop", 1));
Haab.insert(pair<string, int>("no", 2));
Haab.insert(pair<string, int>("zip", 3));
Haab.insert(pair<string, int>("zotz", 4));
Haab.insert(pair<string, int>("tzec", 5));
Haab.insert(pair<string, int>("xul", 6));
Haab.insert(pair<string, int>("yoxkin", 7));
Haab.insert(pair<string, int>("mol", 8));
Haab.insert(pair<string, int>("chen", 9));
Haab.insert(pair<string, int>("yax", 10));
Haab.insert(pair<string, int>("zac", 11));
Haab.insert(pair<string, int>("ceh", 12));
Haab.insert(pair<string, int>("mac", 13));
Haab.insert(pair<string, int>("kankin", 14));
Haab.insert(pair<string, int>("muan", 15));
Haab.insert(pair<string, int>("pax", 16));
Haab.insert(pair<string, int>("koyab", 17));
Haab.insert(pair<string, int>("cumhu", 18));
Haab.insert(pair<string, int>("uayet", 19));
}
const char Tzolkin[][10] = { "imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau" };
int main()
{
init();
char tmp[15];
int day, year, totalDays;
int tmpDay, tmpMonth,tmpYear;
int n;
cin >> n;
cout << n << endl;
while (n--){
totalDays = 0;
scanf("%d. %s %d", &day, tmp, &year);
totalDays += (year*(18 * 20 + 5)+((Haab[tmp] - 1) * 20 + day)); //calculate the total days
tmpYear = totalDays / 260; //year
tmpMonth = totalDays % 260;
tmpDay = tmpMonth%13+1; //num
cout << tmpDay << " " << Tzolkin[(tmpMonth) % 20] << " " << tmpYear << endl;
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ POJ 算法