您的位置:首页 > 其它

JOJ 1071: Maya Calendar 解题报告

2009-07-28 09:58 344 查看


uayet
这一个月没加上,调了一晚上就不知道什么问题……

 

题意 :

 

定义了两种记年法,在两种记年法转换

 
分析 :

 

一种记年法化为多少天,然后天数化为另一种记年法。

 
代码 :

 

#include <iostream>
using namespace std;
int ha_day,ha_year;
int dayafter;
char ha_month[25];
char ha_month_list[20][25]={" ","pop", "no","zip", "zotz",
"tzec", "xul", "yoxkin", "mol", "chen", "yax",
"zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu","uayet"
};
int tzo_day;
char tzo_month[25];
char tzo_month_list[21][25]={" ","imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb",
"ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau"
};
int tzo_year;
int cal_ha();
void changeto_tzo();
int main()
{
int cases;
cin>>cases;
cout<<cases<<endl;
while (cases--)
{
scanf("%d. ", &ha_day);
scanf("%s", ha_month);
scanf("%d", &ha_year);
int day=0;
day+=ha_year*365;
int i;
for (i=1;;++i)
{
if ( strcmp(ha_month,ha_month_list[i])==0)
break;
}
i--;
day+=i*20;
day+=ha_day;
day++;
dayafter=day;
tzo_year=(dayafter-1)/260;
int lastday=dayafter-tzo_year*260;
int num=lastday%13;
if (num==0)
{
num=13;
}
int month=lastday%20;
if (month==0)
{
month=20;
}
printf("%d %s %d/n",num,tzo_month_list[month],tzo_year);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  calendar list