天干地支(蓝桥杯)

天干地支

题目描述

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

天干一共有十个,分别为:甲(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)。

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

2020 年是庚子年。

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

每过 60 年,天干会循环 6 轮,地支会循环 5 轮,所以天干地支纪年每

60 年轮回一次。例如 1900 年,1960 年,2020 年都是庚子年。

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

输入描述

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

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

输出描述

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

输入输出样例

示例

输入
c 复制代码
2020
输出
c 复制代码
gengzi

C语言

c 复制代码
#include<stdio.h>

int main()
{
  char tiangan[10][10]={"jia","yi","bing","ding","wu","ji","geng","xin","ren","gui"};
  //                      0     1     2     3      4    5     6
  char dizhi[12][10]={"zi","chou","yin","mao","chen","si","wu","wei","shen","you","xu","hai"};
  //                    0
  int year=2020;
  int i=6;
  int j=0;
  int n=0;
  scanf("%d",&n);
  if(n>2020)
  {
    for(int l=2020;l<n;l++)
    {
      i++;j++;
      if(i==10)	i=0;
      if(j==12)	j=0;
    }
  }
  else if(n<2020)
  {
    for(int l=2020;l>n;l--)
    {
      i--;j--;
      if(i==-1)	i=9;
      if(j==-1)	j=11;
    }
  }
  printf("%s%s",tiangan[i],dizhi[j]);
  return 0;
}

c++

解题思路:以零年为基准

c 复制代码
#include<iostream>
using namespace std;
#include<string>
int main()
{
  string tiangan[]={"geng","xin","ren","gui","jia","yi","bing","ding","wu","ji"};
  string dizhi[]={"shen","you","xu","hai","zi","zhou","yin","mao","chen","si","wu","wei"};
  int n;
  //以0年为基准判断
  //2020为庚子年
  //2020%10=0说明0年和2020年一样为庚年;
  //2020%12=4(还差4年满一轮到子年)因为余4在子年往前推四年为申年,所以0年为申年;
  cin>>n;
  cout<<tiangan[n%10]<<dizhi[n%12]<<endl;
  return 0;
}
相关推荐
aramae3 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
无敌贵点大王4 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
Logic1014 小时前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
知识分享小能手6 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
qq_199886877 小时前
第8板块·第2节:统一内存的高级特性与性能调优
c++·人工智能·gpu算力·cuda
2401_839080548 小时前
C++常见八股
数据结构·c++·算法
qq_199886878 小时前
第6板块 第2节 CUDA运行时API与驱动API 核心笔记
c++·人工智能·gpu算力
Escalating_xu8 小时前
【C 语言项目】数组和函数综合实践:从零实现控制台扫雷游戏
c语言
syagain_zsx9 小时前
算法基础篇 · 03 枚举(C++ 题解)
c++·算法·二进制·枚举
weixin_307779139 小时前
C++代码实现MATLAB中的ode23tb函数功能
开发语言·c++·算法·matlab