中文题。大概意思就是日历A按照某某方式计算(每年365天),日历B按照某某方式计算(每年260天),现在给出日历A的某一个日子(年月日)要求你转换成日历B的某一个日子。思路就是按照日历A的方式计算出一共多少天,然后再按照日历B的方式该除的除,该取模的取模。
题目不难,细节要注意。
1.Tzolkin历法的月和日是分开计算的。之前一直出错,是因为单纯的把这个历法的计算方式理解为一年分为13个月每个月20天,所以在求解的时候用的一下错误的算法:
Tzolkinmonth=(sum%260)/20;
正确的算法应该是:Tzolkinmonth=(sum%260)%13+1;
2.要首先输出你输入的数据量(就因为这个原因一直没有AC)。
代码如下:
/*
Arthur: Near
Date: 2014/08/12
Note: Poj1008
*/
#include <iostream>
#include <string>
using namespace std;
int GetHaabDays(int,string,int);//算出总天数
int main()
{
int Haabday;
string Haabmonth;
int Haabyear;
//Haab历法年月日定义
int Tzolkinyear;
int Tzolkinmonth;
string Tzolkinday;
//Tzolkin历法年月日定义
int day;//用于计算Tzolkin日历下的天由此转换为String
char Dot;//题目要求输入‘.’
int n;
int sum=0;
cin>>n;
cout<