您的位置:首页 > 其它

ACM —— 1008 Maya Calendar

2015-09-08 18:00 316 查看
解题代码:

import java.util.HashMap;
import java.util.Scanner;

public class Main {

	static String[] numTzolkin = new String[] {"imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau"};
	static HashMap<String, Integer> monHaab = new HashMap<String, Integer>();
	/*
	 * pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen, 
	 * yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu, uayet
	 */
	static {
		monHaab.put("pop", 0);
		monHaab.put("no", 1);
		monHaab.put("zip", 2);
		monHaab.put("zotz", 3);
		monHaab.put("tzec", 4);
		monHaab.put("xul", 5);
		monHaab.put("yoxkin", 6);
		monHaab.put("mol", 7);
		monHaab.put("chen", 8);
		monHaab.put("yax", 9);
		monHaab.put("zac", 10);
		monHaab.put("ceh", 11);
		monHaab.put("mac", 12);
		monHaab.put("kankin", 13);
		monHaab.put("muan", 14);
		monHaab.put("pax", 15);
		monHaab.put("koyab", 16);
		monHaab.put("cumhu", 17);
		monHaab.put("uayet", 18);
	}
	
	public static void main(String[] args) {
		Scanner stdin = new Scanner(System.in);
		int num = stdin.nextInt();
		System.out.println(num);
		int hDay;
		String hMonth, dayTemp;
		int hYear;
		int daySum;
		for (int i = 0; i < num; i++) {
			dayTemp = stdin.next();
			hDay = Integer.parseInt(dayTemp.substring(0, dayTemp.length()-1));
			hMonth = stdin.next();
			hYear = stdin.nextInt();
			daySum = getSumDay(hDay, hMonth, hYear);
			outTzolkin(daySum);
		}
	}
	
	private static void outTzolkin(int daySum) {
		int tYear = daySum/260;
		int tNum = (daySum+1)%13;
		int tDay = daySum%20;
		System.out.println((tNum == 0 ? 13:tNum) + " " + numTzolkin[tDay] + " " + tYear);
		
	}

	private static int getSumDay(int hDay, String hMonth, int hYear) {
		return hDay + monHaab.get(hMonth)*20 + hYear*365;
	}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: