日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ACM1008玛雅日历

發(fā)布時(shí)間:2023/12/18 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ACM1008玛雅日历 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原題如下:教授發(fā)現(xiàn)瑪雅人使用了一個(gè)一年有365天的叫做Haab的歷法。這個(gè)Haab歷法擁有19個(gè)月,在開始的18個(gè)月,一個(gè)月有20天,月份的名字分別是pop, no, zip, zotz, tzec, xul, yoxkin, mol,
chen, yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu。
這些月份中的日期用0到19表示。Haab歷的最后一個(gè)月叫做uayet,它只有5天,用0到4表示。
瑪雅人還使用了另一個(gè)歷法,在這個(gè)歷法中年被稱為Tzolkin(holly年),一年被分成13個(gè)不同的時(shí)期,每個(gè)時(shí)期有20天,每一天用一個(gè)數(shù)字和一個(gè)單詞相組合的形式來表示。
使用的數(shù)字是1~13,使用的單詞共有20個(gè),它們分別是: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 ……也就是說數(shù)字和單詞各自獨(dú)立循環(huán)使用。

Haab歷和Tzolkin歷中的年都用數(shù)字0,1,……表示,數(shù)字0表示世界的開始。所以第一天被表示成:
Haab: 0. pop 0
Tzolkin: 1 imix 0
請幫助M.A. Ya教授寫一個(gè)程序可以把Haab歷轉(zhuǎn)化成Tzolkin歷。
方法:將整個(gè)單詞存入數(shù)組用哈希表的方法進(jìn)行訪問,訪問下標(biāo)就可以直接訪問到相應(yīng)的字符串,并且方便計(jì)算天數(shù)
代碼如下:

#include<stdio.h>//馬雅麗有兩種 第一種M_month是19個(gè)月,前18個(gè)月 20天 最后一個(gè)月5天 #include<string.h> //d第二種H_month int main() {const int namelen = 10;int i = 0, max;int j = 0;int M_day=10;char M_month[19][namelen] = { "pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "koyab", "cumhu", "uayet" };char T_month[20][namelen]= { "imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau" };scanf("%d",&max);//一共幾組日期for (i = 0; i <= max; i++){int year, day, dates;char month[namelen];scanf_s("%d.%s %d", &day, month, &year);for (j = 0; j <= 19; j++){if (!strcmp(M_month[j], month))break;}dates = 365 * year + j * 20 + day;//算出一共多少天,從0年0月0日開始printf("%d %s %d\n", 1 + dates % 13, T_month[dates % 20], dates / 260);//因?yàn)閙onth day 都是獨(dú)立的增長,直接取余數(shù)}return 0; }

總結(jié)

以上是生活随笔為你收集整理的ACM1008玛雅日历的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。