这道题目其实不难,不过总是废了好多时间,好忧桑,编程能力还是太弱小了,
遇到的问题主要是:
1.数据读入,有个'.',后来突然想到可以通过读入float解决
2.年月转换时候的+1,-1有些晕,这个需要格外注意下。
Source Code
Problem: 1008 | User: zhyh2010 | |
Memory: 240K | Time: 0MS | |
Language: C++ | Result: Accepted |
- Source Code
#include <iostream> #include <map> #include <string> using namespace std; const int H_year_length = 18 * 20 + 5; map<string, int> H_month_table; map<int,string> T_day_table; const int T_year_length = 13 * 20; void init() { H_month_table["pop"] = 1; H_month_table["no"] = 2; H_month_table["zip"]= 3; H_month_table["zotz"] =4; H_month_table["tzec"] =5; H_month_table["xul"] =6; H_month_table["yoxkin"] =7; H_month_table["mol"] =8; H_month_table["chen"] =9; H_month_table["yax"] =10; H_month_table["zac"] =11; H_month_table["ceh"] =12; H_month_table["mac"] =13; H_month_table["kankin"] =14; H_month_table["muan"] =15; H_month_table["pax"] =16; H_month_table["koyab"] =17; H_month_table["cumhu"] =18; H_month_table["uayet"] =19; T_day_table[1] = "imix"; T_day_table[2]="ik"; T_day_table[3]="akbal"; T_day_table[4]="kan"; T_day_table[5]="chicchan"; T_day_table[6]="cimi"; T_day_table[7]="manik"; T_day_table[8]="lamat"; T_day_table[9]="muluk"; T_day_table[10]="ok"; T_day_table[11]="chuen"; T_day_table[12]="eb"; T_day_table[13]="ben"; T_day_table[14]="ix"; T_day_table[15]="mem"; T_day_table[16]="cib"; T_day_table[17]="caban"; T_day_table[18]="eznab"; T_day_table[19]="canac"; T_day_table[20]="ahau"; } int main(int argc, char ** argv) { float H_day; char H_month_s[6]; int H_month; int H_year; int T_day; int T_month; int T_year; int num; init(); cin >> num; cout << num << endl; int * pIndex = new int[num]; for (int i = 0; i != num; ++i) { // encode cin >> H_day >> H_month_s >> H_year; if (H_month_table[H_month_s] == 19) { pIndex[i] = H_year*H_year_length + 360 + H_day; } else { pIndex[i] = H_year*H_year_length + (H_month_table[H_month_s] - 1) * 20 + H_day; } // decode T_year = pIndex[i] / T_year_length; T_month = pIndex[i] % T_year_length % 20 + 1; T_day = pIndex[i] % T_year_length % 13 + 1; cout << T_day << " " << T_day_table[T_month] << " " << T_year << endl; } return 0; }