论坛首页 Java企业应用论坛

杰哥私房题──玛雅历

浏览 2293 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-03  

问题描述
上周末,M.A 教授对古老的玛雅有了一个重大发现。从一个古老的节绳(玛雅人用
于记事的工具)中,教授发现玛雅人使用了一个一年有365 的叫做Haab 的日历。这个
Haab 日历拥有19 个月,在开始的18 个月,一个月有20 天,月份的名字分别是pop, no,
zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu.
这些月份中的日期用0 到19 表示。Haab 历的最后一个月叫做uayet,它只有5 天,用0
到4 表示。玛雅人认为这个日期最少的月份是不吉利的,在这个月法庭不开庭,人们不
从事交易,甚至没有人打扫屋中的走廊。
因为宗教的原因,玛雅人还使用了另一个日历,在这个日历中年被称为Tzolkin(holly
年),一年被分成13 个不同的时期,每个时期有20 天,每一天用一个数字和一个单词
相组合的形式来表示。使用的数字是1~13,使用的单词共有20 个,它们分别是:imix,
ik, akbal, kan, chicchan, cimi, manik, lamat, muluk, ok, chuen, eb, ben, ix, mem, cib, caban,
eznab, canac, ahau。注意:年中的每一天都有着明确的描述,比如,在一年的开始,日
期如下描述: 1 imix, 2 ik, 3 akbal, 4 kan, 5 chicchan, 6 cimi, 7 manik, 8 lamat, 9 muluk, 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 . . . 。也就是说数字和单词各自独立循环使用。
Haab 历和Tzolkin 历中的年都用数字0,1,:::表示,数字0 表示世界的开始。所
以第一天被表示成:
Haab: 0. pop 0
Tzolkin: 1 imix 0
请帮助M.A.教授写一个程序可以把Haab 历转化成Tzolkin 历。
输入数据
Haab 历中的数据由如下的方式表示:
日期. 月份 年数
第一行表示要转化的Haab 历的数据量。下面的每一行表示一个日期,年数小于
5000。
输出要求
Tzolkin 历中的数据由如下的方式表示:
天数字 天名称 年数
第一行表示需要转化的Haab 历的数据量。下面的每一行表示一个日期。
输入样例
3
10. zac 0
0. pop 0
10. zac 1995
输出样例
3
3 chuen 0
1 imix 0
9 cimi 2801

 

#include <stdio.h>
int main(){
	int nCases;
	char* haab[] = {"pop","no","zip", "zotz", "tzec", "xul", "yoxkin","mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu", "uayet"};
	char* tzolkin[] = {"imix","ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban","eznab", "canac", "ahau"};
	scanf("%d", &nCases);
	printf("%d\n", nCases);
	while(nCases --){
		int hYear, hDay;
		char hMonth[10];
		int i = 0;
		scanf("%d.%s %d", &hDay, hMonth, &hYear);
		while(strcmp(hMonth, haab[i])){
			i++;
		}
		int days;
		days = hYear * 365 + i * 20 + hDay;
		int zYear = days / 260;
		printf("%d.%s %d\n", days % 13 + 1, tzolkin[days % 20], zYear);
	}
	return 0;

}
 
   发表时间:2009-03-30  
pku 1008标准水题一道
0 请登录后投票
   发表时间:2009-04-01  
以前看过鸟哥私房菜。现在来个杰哥私房菜。我晕倒
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics