北大PKU在线测试1008

来源:互联网 发布:滴定分析实验数据 编辑:程序博客网 时间:2024/06/01 19:09

描述:最近的一次休假中MAYa教授有了一个惊人发现关于古老玛雅日历从陈旧的信息中教授发现,玛雅文明一年使用365叫做哈布,共有1918月每个月有20天,这几个月的名字是pop,no, zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac,kankin, muan, pax, koyab,cumhu几个月的日子0到19数字表示最后一个月在Haab历上被称为uayet5天,用数字01,2,3,4表示玛雅人认为,这个月是不吉利的正义法庭不开庭,贸易停了下来,甚至没人扫地

   出于宗教目的,玛雅人使用了另一个历法卓尔金历在这一年冬青。这种历法中一年被分成13个时,每个时期有20每天一个号码和这一天的名称组成他们用这20个名字:imix,ik, akbal, kan, chicchan, cimi, manik, lamat, muluk, ok, chuen, eb,ben, ix, mem, cib, caban, eznab, canac, ahau和13个数字;名称和数字都是是在周期。
   请注意,一天都有一个明确的说明例如,在年初描述如下:1imix, 2 ik, 3 akbal, 4 kan, 5 chicchan, 6 cimi, 7 manik, 8 lamat, 9muluk, 10 ok, 11 chuen, 12 eb, 13 ben, 1 ix, 2 mem, 3 cib, 4 caban,5 eznab, 6 canac, 7 ahau,然后接着下一个时期8 imix, 9 ik, 10 akbal。

    哈布卓尔金历)由0,1,...表示数字0世界开始因此,第一天

Haab: 0. pop 0

Tzolkin: 1 imix 0

帮助MAYa教授写一个程序,将哈布日期转换为卓尔金历日历。

输入:哈布日期的格式如下:天数.月年
    输入件的第一行包含在文件中的输入日期的数目下面n行包含n个使用哈布日历格式的日期每个占单独的行。年应该小于5000

输出:卓尔金历的日期应该是在下面的格式:天数.月年
输出文件第一行包含输出日期的数目在接下来的n行是使用卓尔金历日历格式日期输出日期的顺序对应输入顺序。
程序源代码:
#include<iostream>
#include<string>
using namespace std;
int main(){
 int i,j,n,days,months,years,num;
 char month[10];
 charHaab[19][10]={"pop","no","zip","zotz","tzec","xul","yoxkin","mol","chen","yax","zac","ceh","mac","kankin","muan","pax","koyab","cumhu","uayet"};
 charTzolkin[20][10]={"imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk","ok","chuen","eb","ben","ix","men","cib","caban","eznab","canac","ahau"};
 cin>>n;
 cout<<n<<endl;
 for(i=0;i<n;i++){
  scanf("%d. %s%d",&days,month,&years);
  for(j=0;j<19;j++)
   if(strcmp(Haab[j],month)==0){
    months=j;
    break;
   }
  num=years*365+months*20+days;
  cout<<1+num<<""<<Tzolkin[num]<<""<<num/260<<endl;
 }
 return 0;
}
这个代码这么简化也是参考了别人的,多和别人学习学习是很好的。可以给你提供更多的思路
 
0 0