マヤ暦

説明

先週末、教授MA雅は、古代マヤの主要な発見をしました。古い結び目(メモ用のMayaツール)からは、教授はMayaは365日のハアブ暦と呼ばれる暦年を、使用していることが分かりました。ハアブ暦のカレンダーは、月の名前がポップ19ヶ月、18ヶ月から始め、20日の月ですしている、いや、郵便番号、zotz、tzec、XUL、yoxkin、モル、陳、YAX、ZAC、CEH、マック、kankin、務安、PAX、koyab、cumhu。月のこの日は、0-19で示されます。ハアブ暦は、それが0-4の表現で、たった5日間で、uayet先月に選ばれました。マヤは、この最小の日付は今月裁判所でも、家の床を掃除ない、人々が取引に従事していないことを聞いていない、不運月であることを信じていました。

宗教上の理由のために、Mayaは、別のカレンダーを使用するこのカレンダーは、中年ゾルキン(ヒイラギ)、年がデジタルで13回の別個の期間、20日の各期間、毎日に分割されているとして知られています単語の組み合わせの形で表されます。使用される数は1〜13、20の合計で使用される単語は、それらがされている:IMIX、IK、akbal、菅、chicchan、CIMI、マニク、lamat、muluk、OK、シュー、EB、ベン、IX、MEM、CIB 、Cabanの、eznab、canac、アハウ。注:1 IMIX、2 IK、3 akbal、4館、5 chicchan、6 CIMI、7マニク、8 lamat:毎日での明確な記述が、例えば、年の初めに、日付は、以下のように記載されていますすなわち9 muluk、10 OK、11シュー、12 EB、13ベン、1つのIX、2 MEM、3 CIB、4 Cabanの、5 eznab、6 canac、7アハウ,, 8 IMIX、9 IK、10 akbal ......数字や言葉が独立してリサイクル。

ハアブ暦とゾルキン数は年間0,1で使用されている、......世界の始まりを表す数値0を表します。:として表現された最初の日はそう
ハアブ暦:0 POP 0
ゾルキン:IMIX 1つの0
ヘルプ教授MA雅とカレンダーゾルキンハアブ暦のカレンダーを変換するプログラムを書きます。
入力

:ハアブ暦のカレンダーのデータは、以下の方法で表される
月の日数

最初の行は、ハアブ暦の日付の変換に入力されるデータの量を示します。各列の下に日付、以下5000年以上の数を表します。
出力

:ゾルキンカレンダーデータは、以下の方法で表現される
数名の日数日数

最初の行は、出力日付の数を示します。各行は、入力に対応する次のゾルキンカレンダー日付を表します。
サンプル入力

3
10. ZAC 0
0 0ポップ
10. ZAC 1995
サンプル出力

3
3シュー0
1 0 IMIX
9 CIMI 2801

#include <iostream>
#include<string.h>
#include<math.h>

using namespace std;

class Haab {
public:
	char Months[19][10]={ "pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen",
		"yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu","uayet" };
	char *day=new char[10];
	char* month=new char[10];
	int year;

	void input(){
		cin >> day >> month >> year;
	}

	int output() {
		int sum = 0;
		sum += year * 365;
		int i = 0;

		for (; i < 19; i++)
			if (!strcmp(month,Months[i])) break;

		sum += 20 * i;

		int j = -1;
		int f = 0;
		char *temp=new char[10];

		for (int i = 0; i < 10; i++)
		{
			if (day[i] == '.') break;
			temp[i] = day[i];
			j++;
		}

		while (j >= 0) {
			sum = sum + pow(10.0, f)*(int)(temp[j] - '0');
			f++;
			j--;
		}
		return sum;
	}

};
class Tzolkin {
public:
	char Months[20][10] = { "imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib","caban", "eznab", "canac", "ahau" };
	int day;
	char*month = new char[10];
	int year;

	Tzolkin(int days) {
		year = days / 260;
		days %= 260;
		int j = 0;
		day = days % 13 + 1;
		month = Months[days % 20];
	}

	void output() {
		cout << day << " " << month << " " << year << endl;
	}
};
int main()
{
	int n;
	cin >> n;
	cout << n << endl;
	for (int i = 0; i < n; i++) {
	Haab h;
	h.input();
	int day=h.output();
	Tzolkin z(day);
	z.output();
	}
}

驚くべきことに、入力10.時間が自動的に残りの部分を無視します。
だから
int型への一日は、多くのコードを保存することができます


出版元の記事 ウォンの賞賛0 ビュー14

おすすめ

転載: blog.csdn.net/weixin_45549192/article/details/104295588