思路:
- 一题。
- 用 string 数组存名字。
- days 是当前已经过完了多少天。
代码:
#include <iostream>
using namespace std;
string Haab[19]={
"pop",
"no",
"zip",
"zotz",
"tzec",
"xul",
"yoxkin",
"mol",
"chen",
"yax",
"zac",
"ceh",
"mac",
"kankin",
"muan",
"pax",
"koyab",
"cumhu",
"uayet"
};
string Tzolkin[20]={
"imix",
"ik",
"akbal",
"kan",
"chicchan",
"cimi",
"manik",
"lamat",
"muluk",
"ok",
"chuen",
"eb",
"ben",
"ix",
"mem",
"cib",
"caban",
"eznab",
"canac",
"ahau"
};
int main(){
int t;cin>>t;cout<<t<<endl;
while(t--){
int days;
int year;
string nm;
int day;
int d,y;
string m;
char ch;
cin>>d>>ch>>m>>y;
int i;
for(i=0;i<=18;i++)
if(Haab[i] == m)
break;
days = y * 365 + i * 20 + d;
year = days / 260;
days %= 260;
nm = Tzolkin[days % 20];
day = days%13 + 1;
cout<<day<<' '<<nm<<' '<<year<<endl;
}
return 0;
}