天干地支(蓝桥杯)

天干地支

题目描述

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

天干一共有十个,分别为:甲(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;
}
相关推荐
FlightYe6 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
蹊黎7 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
by209997 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
Rover Ramble7 小时前
C++ 用互斥锁实现读写锁
开发语言·c++
你怎么知道我是队长8 小时前
C++零基础入门第2周:数据类型、运算符与表达式完全指南(附20段可运行代码+避坑清单)
c++
say_fall8 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
雪落漂泊8 小时前
C++算法 滑动窗口篇(下)
开发语言·c++
爱聊灵光的维C9 小时前
从看见世界到重构认知:在视觉与硬件的交汇处,寻找我们这代人的北极星
c语言·物联网·计算机视觉·重构·硬件工程·射频工程
AI+程序员在路上9 小时前
RV1126B 上支持的模型及全流程应用--从CNN及语音到 LLMVLM 与跨平台选型
linux·c语言·人工智能
揽星河..10 小时前
【C语言】扫雷游戏
c语言·算法·游戏