资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

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

天干一共有十个,分别为:甲(jia)、乙(yi)、丙(bing)、丁 (ding)、戊( wi)、己(j)、庚(geng)、辛(xin)、王 (ren)、癸(gui)。

地支一共有十二个,分别为:子(z)、丑 (chou)、寅( yin)、卯(mao)、辰(chen)、已(si)、午 ( wü)、未( wei)、申 (shen)、西( you)、戌(xt)、亥(hai)。

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

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

每过60年,天干会循环6轮,地支会循环5轮,所以天干地支纪年每60年轮回一次。例如1900年,1960年,2020年都是庚子年。

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

输入格式

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

输出格式

输出一个拼音,表示天干地支的年份,天干和地支都用小写拼音表示(不表示声调),之间不要加入任何多余的字符。

样例输入

2020

样例输出

gengzi

评测用例规模与约定

对于所有评测用例,输入的公元年份为不超过9999的正整数。

【思路与分析】

        该题没有多少弯弯绕绕,基本上第一眼看过去就有思路。我的两个解题思路分别为:

1. 直接通过题中所给的2020年所代表的天干地支纪年法作为基准值,在该基准上进行求解。

2. 通过题中所给的2020的天干地支来求出公元1年,也就是公元元年所代表的天干地支纪年法(经计算为:xinyou)而后将公元元年作为基准值求解。

两个思路大差不差,无非是在基准值的选取上略有区别。

废话不多说,展示。

代码

import java.util.*;public class Main{public static void main(String[] args){//获取输入Scanner sc = new Scanner(System.in);int year = sc.nextInt();//声明一个数组,分别存储天干和地支的值String[] tianGan = {"jia", "yi", "bing", "ding", "wu", "ji", "geng", "xin", "ren", "gui"};String[] diZhi = {"zi", "chou", "yin", "mao", "chen", "si", "wu", "wei", "shen", "you", "xu", "hai"};//因其天干地支可看作60年循环一次//对年份进行除余操作,方便后续计算year = year % 60;//天干10年循环一次int tian = year % 10;//地支12年循环一次int di = year % 12;//因公元纪年法从 1 开始,因此公元元年的天干地支:xinyou//在天干[7]地支[9]的下标都要-1,以进行匹配System.out.println(tianGan[((6+tian)%10)]+diZhi[((8+di)%12)]);}
}

总结

        此题还是较为简单的,没有涉及到复杂的数据结构和算法,多试几遍还是很好解出来的。需要注意的点是公元纪年法从1开始,而不是0

【蓝桥杯】历届真题 天干地支(决赛)Java相关推荐

  1. 蓝桥杯历年真题及解析(Java B组)

    蓝桥杯历年真题及解析 Java语言 B组省赛真题及解析 2016年第七届Java B组蓝桥杯省赛真题解及析 2017年第八届java B组蓝桥杯省赛真题及解析 2018年第九届Java B组蓝桥杯省赛 ...

  2. 蓝桥杯--历届真题 最优包含【第十届】【决赛】【B组】

    试题 历届真题 最优包含[第十届][决赛][B组] 提交此题   评测记录 资源限制 时间限制:1.0s   内存限制:256.0MB  类似于:Acwing--902. 最短编辑距离(线性dp)_w ...

  3. 蓝桥杯--历届真题 回文日期【第十一届】【省赛】【B组】

    试题 历届真题 回文日期[第十一届][省赛][B组] 提交此题   评测记录 资源限制 时间限制:1.0s   内存限制:256.0MB  哎话说好久没写过日期题了,回忆起刚学的时候被日期统治的恐惧了

  4. 蓝桥杯真题--天干地支(Java实现)

    现在我们知道了 2020 年是庚子年,我们这里既可以是除留余数来判断 N 年是什么天干和什么地支,我们也可以直接暴力使用循环做,这样的话 9999 的复杂度也跑不了多久.实现起来很简单,我们讲这个比较 ...

  5. 超详细思维过程 杨辉三角形 蓝桥杯 历届真题

    先说前提,这题我用自己的想法只过了50%,其他用例超时了. 官网题目链接 大多数人想到的直接暴力,其实我也差不多只是很多地方思路改进 用一个二维数组存起来同时计数,遇到的时候返回计数值 最先应该是这个 ...

  6. 蓝桥杯---历届真题 题解

    试题编号 题解 问题描述 PREV-55 小计算器 模拟 PREV-54 合根植物 并查集 PREV-53 分考场 回溯 PREV-52 小数第n位 数学 PREV-51 观光铁路 PREV-50 对 ...

  7. 蓝桥杯——历届真题左hai子右兄弟-python

    思路:dp,树转换为左孩子右兄弟的二叉树后,以i为根的树的最大深度为节点i的孩 子数量+孩子中子树最深的深度.使用li[i]记录结点i的所有子节点,dp公式即为:孩子数+max(子树深度),即 len ...

  8. 蓝桥杯 历届真题 古堡算式【省赛】【本科组】

    题目描述 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE\ *\ ? = EDCBAABCDE ∗ ?=EDCBA 他对华生说:"ABCDEABCDE 应该代表不同的数字,问 ...

  9. Java实现 蓝桥杯 历届真题 数字拆分

    正整数可以表示为若干正整数的累加和.如,对于正整数n=6,可以分划为: 5+1 4+2 4+1+1 3+3 3+2+1 3+1+1+1 2+2+2 2+2+1+1 2+1+1+1+1 1+1+1+1+ ...

最新文章

  1. 清华姚班陈丹琦获斯隆奖!与去年得主马腾宇是同班同学,博士毕业论文是近十年最热之一...
  2. tf.squeeze
  3. linux简单快速启用web
  4. CSS3 box-reflect 属性
  5. md5模式 签名_MD的完整形式是什么?
  6. shell 文件 开头的格式
  7. 年会季来临,年会会场管理一招搞定!
  8. 化学实验中计算机技术的应用,浅谈计算机在基础化学实验中的应用
  9. c++ 课程设计之车票管理系统
  10. 关于Lasso回归的一个例子
  11. 几款KINECT应用
  12. Better Explained 以通俗易懂的语言阐释数学
  13. 如何检测Linux内核的Rootkit
  14. 如何使用计算机硬件开关网络,笔记本无线网络开关介绍 怎么正确使用开关控制?...
  15. 流程图软件Visio的使用笔记
  16. 基于双目摄像头测量距离
  17. 2022年上半年网络工程师上午真题及答案
  18. 安娜模特java_捧红了梦露的花花公子,首席模特安娜狂露身材,“神臀”不负此名...
  19. verilog 1bit跨时钟同步器
  20. opencv人脸识别-海康网络摄像头

热门文章

  1. ORACLE分级查询
  2. android6 miui9分屏,小米手机如何分屏,MIUI9分屏模式如何开启?
  3. Java 类实例化顺序
  4. java 数字签名_数字签名的Java签名步骤
  5. 心理咨询师考试 笔记[4]
  6. 快速解决macOS升级后截图权限授予无效的问题
  7. [转]你所不知道的超级瘦腿运动——空中蹬自行车
  8. 一篇很好的关于男女的文章
  9. ACL——【知识详解+案列+(RACL+VACL+PACL)】详解
  10. php虚拟主机选择,如何选择php虚拟主机