当前位置:   article > 正文

案例十七:干支纪年法_干支纪年拼图解法代码

干支纪年拼图解法代码

分析: 

干支纪年法中天干和地支的搭配可以用右图来表示,因为“天干”有10个,“地支”有12个,从“甲子”开始到“癸酉”,天干已经用完,又从“甲”开始,所以下一个干支纪年是“甲戌由题目给定的2009年是己丑年,可以推算出2004年的天干是甲,那么输入年份year的天干是什么呢?肯定是第(year-2004)%10个 

 甲、乙、丙、丁、戌、己、庚、辛、壬、癸
  0     1      2     3     4     5     6     7     8     9
2004                          2009                   year
同理,可以推算出2008年的地支是子,输入年份year的地支是第(year-2008)%12个
子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥
 A     B     C    D     E     F     G    H     I      J     K     L
20082009                                             year
在本题中,用数字字符和字母字符来表示天干和地支,所以求得天干和地支的数值后,分别加上字符'0和字符'A',就可以得到对应天干和地支的字符
注意,本题需要处理多组测试数据,而且是第3种输入情形(在不跳出循环的情况下输出数据)

  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int year;
  6. char g, b; //年份对应的天干和地支
  7. while(cin >> year){
  8. g = (year-2004)%10+'0';
  9. b = (year-2008)%12+'A';
  10. cout << g << b << endl;
  11. }
  12. return 0;
  13. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号