蓝桥杯备赛--------天干地支(学习笔记)

一、题目描述:

古代中国使用天干地支来记录当前的年份。

天干一共有十个,分别为:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ)。

地支一共有十二个,分别为:子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、辰(chén)、巳(sì)、午(wǔ)、未(wèi)、申(shēn)、酉(yǒu)、戌(xū)、 亥(hài)。

将天干和地支连起来,就组成了一个天干地支的年份,例如:甲子。

20202020 年是庚子年。

每过一年,天干和地支都会移动到下一个。例如 20212021 年是辛丑年。

每过 6060 年,天干会循环 66 轮,地支会循环 55 轮,所以天干地支纪年每 6060 年轮回一次。例如 19001900 年,19601960 年,20202020 年都是庚子年。

给定一个公元纪年的年份,请输出这一年的天干地支年份。

输入描述

输入一行包含一个正整数,表示公元年份。

其中有 ,输入的公元年份为不超过 99999999 的正整数。

输出描述

输入一行包含一个正整数,表示公元年份。

输入输出样例

示例

输入

2020

输出

gengzi

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

二、解题思路:

定义两个字符串数组tg和dz,分别存储天干和地支,题干给出2020年为“庚子年”,天干十个为一个周期,2020年的“庚”是经历了多个天干周期又(2020%10)+1年而来的,2020%10=0,所以我们姑且将“geng”放于字符串数组tg的首位;同理,2020年的“子”是经过多个地支周期又(2020%12)+1而来,2020%12=4,那么将“zi”放入字符串数组dz下标为4的位置,以此类推将原本在最后四位的“shen”,"you","xu","hai"按原顺序移到前方。

三、代码实现:

代码如下:

#include<bits/stdc++.h>
using namespace std;
string tg[10] = {
    "geng","xin","ren","gui","jia","yi","bing","ding","wu","ji"    
};
string dz[12] = {
    "shen","you","xu","hai","zi","chou","yin","mao","chen","si","wu","wei"
}; 
int main()
{
    int n;
    cin>>n;
    cout<<tg[n%10]<<dz[n%12]<<endl;
    return 0;
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值