题干
天干地支,简称为干支,源自中国远古时代对天象的观测。十干是指阏逢、旃蒙、柔兆、强圉、著雍、屠维、上章、重光、玄黓、昭阳。十二支是指困敦、赤奋若、摄提格、单阏、执徐、大荒落、敦牂、协洽、涒滩、作噩、阉茂、大渊献。简化后“甲、乙、丙、丁、戊、己、庚、辛、壬、癸”称为十天干,“子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥”称为十二地支。干支纪年一个周期的第1年为“甲子”,第2年为“乙丑”,第3年为“丙寅”,…,第11年为“甲戌”,第12年为“乙亥”,第13年为“丙子”,依此类推,60年一个周期;一个周期完了重复使用,周而复始。
已知2022年为“壬寅”年,1984年为“甲子”年,请根据给定的年份,求对应年份的干支。
输入格式:
第一行包含一个整数T(1≤T≤1000),表示一共有T个样例,后面T行,每行包含一个整数 Y (1≤Y≤5000),代表一个年份。
输出格式:
对于每个测试样例,输出相应的干支。
输入样例:
4
1800
1984
2000
2023
输出样例:
庚申
甲子
庚辰
癸卯
解答过程
#include <stdio.h>
const char *gan[] = {"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"};
const char *zhi[] = {"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"};
int main() {
int T, Y;
scanf("%d", &T);
while (T--) {
scanf("%d", &Y);
int gan_index = (Y - 4 + 10) % 10;
int zhi_index = (Y - 4 + 12) % 12;
printf("%s%s\n", gan[gan_index], zhi[zhi_index]);
}
return 0;
}