【poj 1008】

本文介绍了一种解析玛雅历法的算法,通过输入玛雅历法中的天数、月名和年份,该算法可以计算出对应的长计日历(Long Count Calendar)中的天数、图腾名和纪元年。此算法使用了C++编程语言,并利用了标准库中的数据结构和输入输出流。
摘要由CSDN通过智能技术生成

每年的最后一天要考虑

#include <fstream>
#include <string>
#include <map>
using namespace std;
int main() { int n , i ; scanf("%d" , &n ) ; int hdd , hyy , tdd[n] , tnn[n] , tyy[n] , total , day ; char pp,hmon[7] , tname[21][9] = { "oooo" , "imix" , "ik" , "akbal" , "kan" , "chicchan" , "cimi" , "manik" , "lamat" , "muluk" , "ok" , "chuen" , "eb" , "ben" , "ix" , "mem" , "cib" , "caban" , "eznab" , "canac" , "ahau" }; map<string, int> hmm ; hmm["pop"] = 0; hmm["no"] = 1; hmm["zip"] = 2; hmm["zotz"] = 3; hmm["tzec"] = 4; hmm["xul"] = 5; hmm["yoxkin"] = 6; hmm["mol"] = 7; hmm["chen"] = 8; hmm["yax"] = 9; hmm["zac"] = 10; hmm["ceh"] = 11; hmm["mac"] = 12; hmm["kankin"] = 13; hmm["muan"] = 14; hmm["pax"] = 15; hmm["koyab"] = 16; hmm["cumhu"] = 17; hmm["uayet"] = 18; for ( i = 0 ; i < n ; i++) { scanf("%d%c %[^ ] %d", &hdd , &pp , hmon , &hyy ); total = 1 + hdd + hmm[hmon] * 20 + hyy * 365; tyy[i] = total / 260 ; day = total % 260 ; if ( day == 0 ) tyy[i]-- ; tdd[i] = day % 13 ; if ( tdd[i] == 0 ) tdd[i] = 13 ; tnn[i] = day % 20 ; if ( tnn[i] == 0 ) tnn[i] = 20 ; } printf("%d\n",n); for ( i = 0 ; i < n ; i++) printf("%d %s %d\n" , tdd[i] , tname[tnn[i]] , tyy[i] ); return 0; }

 

转载于:https://www.cnblogs.com/FZQL/archive/2013/04/30/3052294.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值