• 天干地支(蓝桥杯)


    天干地支

    题目描述

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

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

    输出描述

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

    输入输出样例

    示例

    输入
    2020
    
    • 1
    输出
    gengzi
    
    • 1

    C语言

    #include
    
    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    c++

    解题思路:以零年为基准

    #include
    using namespace std;
    #include
    int main()
    {
      string tiangan[]={"geng","xin","ren","gui","jia","yi","bing","ding","wu","ji"};
      string dizhi[]={"shen","you","xu","hai","zi","chou","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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  • 相关阅读:
    【Java】【PAT】Basic Level 1022 D进制的A+B
    微信交友unicloud云开发小程序
    requests Python中最好用的网络请求工具 基础速记+最佳实践
    MySQL索引
    数据可视化:四大发明的现代转化引擎
    Hyperledger Fabric定制联盟链网络工程实践
    easyexcel升级3.3.4失败的经历
    《痞子衡嵌入式半月刊》 第 73 期
    二叉树是什么?有几种遍历方式?怎么实现遍历?看完这篇文章之后相信你会有更好的理解
    【Vue】改变 vuex 中的 state ,子组件 watch 监听不到对象值变化。
  • 原文地址:https://blog.csdn.net/m0_73841621/article/details/133383748