案例十七:干支纪年法

分析: 

干支纪年法中天干和地支的搭配可以用右图来表示,因为“天干”有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种输入情形(在不跳出循环的情况下输出数据)

#include<iostream>
using namespace std;
int main()
{
    int year;
    char g, b; //年份对应的天干和地支 
    while(cin >> year){
        g = (year-2004)%10+'0';
        b = (year-2008)%12+'A';
        cout << g << b << endl;
    }    
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值