poj1008
http://poj.org/problem?id=1008
一道日历转换题,要注意%和/符号的运用,还要注意一年的最后一天在/运算符的作用下算作第二年,给数据:
4. uayet 259
正解是 13 ahau 364
而不是13 ahau 365
1 #include<stdio.h>
2 #include<string.h>
3 char month_Haab[19][20]={"pop","no","zip","zotz","tzec","xul","yoxkin","mol","chen","yax","zac","ceh","mac","kankin","muan","pax","koyab","cumhu","uayet"};
4 char name_day_Tzolkin[20][20]={"imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk","ok","chuen","eb","ben","ix","mem","cib","caban","eznab","canac","ahau"};
5 int day_h,year_h;
6 char month_h[20];
7 int day_t,year_t,month_t;
8 int main()
9 {
10 int sum;
11 scanf("%d",&sum);
12 printf("%d\n",sum);
13 while(sum--)
14 {
15 scanf("%d. %s %d",&day_h,month_h,&year_h);
16 int tmp_month=-1;
17 while(strcmp(month_h,month_Haab[++tmp_month])!=0);
18 long tmp_day=year_h*365+day_h+1+tmp_month*20;
19 printf("%d %s %d\n",(tmp_day-1)%13+1,name_day_Tzolkin[(tmp_day-1)%20],(tmp_day-1)/260);
20 }
21 return 0;
22 }