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

news/2024/11/9 3:17:56/

资源限制

        内存限制: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


http://www.ppmy.cn/news/18438.html

相关文章

java学习资料和视频

文章目录1.分布式商城项目(SpringCloud Vue ElementUI)2.大厂算法学习视频(leetCode前100题目本人讲解3,加本人学习购买学习过的vip视频)3.java面经(本人面试多家企业的总结)4.java的面试实战指导5.可以长…

数据结构进阶 unordered_set unordered_map的使用

作者:小萌新 专栏:数据结构进阶 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:介绍高阶数据结构 unorder_set unorder_map的使用 unorder_set unorder_mapunordered系列关联式容器unordered_set介绍unordere…

89. 注意力机制以及代码实现Nadaraya-Waston 核回归

1. 心理学 动物需要在复杂环境下有效关注值得注意的点心理学框架:人类根据随意线索和不随意线索选择注意点 随意:随着自己的意识,有点强调主观能动性的意味。 2. 注意力机制 2. 非参注意力池化层 3. Nadaraya-Waston 核回归 4. 参数化的注意…

OpenCV级联分类器

OpenCV级联分类器 概览 OpenCV: 一个计算机视觉库, 提供了一种称级联分类器的方法检测对象级联分类器:一种基于AdaBoost算法的多级分类器, 用于在图像中检测目标对象. 它通过不断学习组合多个特征来识别目标对象. 每一级中, 级联分类器先检测出可能是目标对象的部分, 然后再这…

联合证券|港股再融资“春江水暖” 资本争购热门赛道企业

进入2023年,港股再融资商场有所回暖。到1月18日,已有27家港股上市公司发布拟配售股份(简称“配股”)再融资,募资总额164.01亿港元,较上一年同期增加148.16%。其间,微盟集团的配股再融资吸引了众…

python+selenium爬虫自动化批量下载文件

一、项目需求 在一个业务网站有可以一个个打开有相关内容的文本,需要逐个保存为TXT,数据量是以千为单位,人工操作会麻木到崩溃。 二、解决方案 目前的基础办法就是使用pythonselenium自动化来代替人工去操作,虽然效率比其他爬虫…

Java基础练习题(四)

13.求两点之间的距离 题目描述 给定A(x1, y1), B(x2, y2)两点坐标,计算它们间的距离。 输入 输入包含四个实数x1, y1, x2, y2,分别用空格隔开,含义如描述。其中0≤x1,x2,y1,y2≤100。 输出 输出占一行,包含一个实数d,表示A, B两点间的距离。结果保留两位小数。 样例输入

经典同步问题

同步问题是一个复杂的问题,但是它也有自己的方法去处理、去分析。PV操作系统的解题思路:关系分析。找出题目中描述的各个进程,分析它们之间的同步、互斥关系。(从事件的角度分析)整理思路。根据各进程的操作流程确定P、V操作的大致顺序。设置…