Description
给定一个公元纪年的年份,请输出这一年的天干地支年份的拼音。
Solution
将天干地支分开计算。
因为天干 10
个一周期,地支 12
个一周期,所以让年份分别对 10,12
取模即可。
现在仅需确定天干地支的起始位即可(因为 0
年不一定是甲子年)。
由于
2020
≡
0
(
m
o
d
10
)
,
2020
≡
4
(
m
o
d
12
)
2020\equiv0\pmod {10},2020\equiv4\pmod{12}
2020≡0(mod10),2020≡4(mod12) 且 2020
年为庚子年,所以 0
年时天干为庚,4
年时地支为子,往前推可发现 0
年时地支为申。
即可确定天干地支的起始位。
Code
#include<bits/stdc++.h>
using namespace std;
string a[15]={{"geng"},{"xin"},{"ren"},{"gui"},{"jia"},{"yi"},{"bing"},{"ding"},{"wu"},{"ji"}};
string b[15]={{"shen"},{"you"},{"xu"},{"hai"},{"zi"},{"chou"},{"yin"},{"mao"},{"chen"},{"si"},{"wu"},{"wei"}};
int main(){
int n;
cin>>n;
cout<<a[n%10]<<b[n%12];
return 0;
}