天干地支(蓝桥杯)

天干地支

题目描述

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

天干一共有十个,分别为:甲(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;
}
相关推荐
悠仁さん4 小时前
【C++】AVL 树
c++
wuminyu5 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
小徐不徐说5 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ragnwang5 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
充值内卷7 小时前
我给桌面加了个鱼缸:C++ 写后端,WebView2 里养一座 Three.js 小岛
开发语言·javascript·c++
樱花树下的数学喵9 小时前
手写简易 STL string|C++ 字符串底层实现
开发语言·c++
AI吃大瓜10 小时前
指针压力表读数3:C/C++实现指针压力表读数(可实时检测)
c++·指针读数·指针压力表·压力表自动读数·压力表读数
-银雾鸢尾-10 小时前
两数之和-C++实现
c++·算法
j7~10 小时前
【动态规划算法专题】动态规划五部曲实战:泰波那契数、三步问题、最小花费爬楼梯
c++·算法·动态规划·数据结构与算法
jimy110 小时前
C++ 报错的 qualifiers 的意思
开发语言·c++