天干地支(蓝桥杯)

天干地支

题目描述

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

天干一共有十个,分别为:甲(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;
}
相关推荐
郝学胜-神的一滴6 小时前
Qt 高级开发 009: C++ Lambda 表达式
开发语言·c++·qt·软件构建
石山代码6 小时前
C++ 轻量级日志系统
开发语言·c++
冉卓电子9 小时前
MPC5604B/C eMIOS 高级定时器全解
c语言
王老师青少年编程9 小时前
2026年全国青少年信息素养大赛初赛真题(算法应用主题赛C++初中组初赛真题3:文末附答案和解析)
c++·真题·答案·初赛·2026年·青少年信息素养大赛·初中组
轻颂呀10 小时前
C++11——并发库介绍
开发语言·c++
梓䈑11 小时前
【算法题攻略】快速排序 和 归并排序
数据结构·c++·排序算法
社交怪人11 小时前
【三角形面积】信息学奥赛一本通C语言解法(题号2073)
c语言
社交怪人11 小时前
【球体体积】信息学奥赛一本通C语言解法(题号1030)
c语言·开发语言
fan_music12 小时前
设计模式学习
c++·设计模式
小小编程路12 小时前
C++ 常用逻辑运算符
开发语言·c++·算法