题目描述
Cwbc和XHRlyb在学习干支纪年法。
干支纪年法是中国历法上自古以来就一直使用的纪年方法。干支是天干和地支的总称。甲、乙、丙、丁、戊、己、庚、辛、壬、癸等十个符号叫天干;子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥等十二个符号叫地支。
为了方便程序的书写,我们不妨将天干记做1到10,地支记做1到12。
通过查阅日历,Cwbc知道农历2018年是戊戌年,XHRlyb想知道农历的n年是什么年。
0年指1年的前一年。
聪明的你在仔细阅读题目后,一定可以顺利的解决这个问题!
输入描述:
输入数据有多组数据,每行有一个整数,表示n。
输出描述:
输出数据应有多行,每行两个整数,分别表示天干和地支的编号。
示例1
输入
2018
输出
5 11
示例2
输入
2020
输出
7 1
备注:
n ∈ [0, 1018]。
1 ≤ T ≤ 1000。
分析
可发现天干地支60年为一周期,且2018%60=38,而天干为5,地支为11,通过计算可知公元4年天干地支均为1,往前推,公元前56年天干地支均为1,故可将当前年度减去-57后%60直接计算出天干地支,时间为8ms。
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
long long a,c,b;
while(cin>>a){
a=(a+57)%60;
b=a%10;
c=a%12;
if(b==0)
b=10;
if(c==0)
c=12;
cout<<b<<" "<<c<<endl;
}
return 0;
}