代码编织梦想

 

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

我们先判断 0000 年的天干 和地支 。

  • 根据题意 0000 年 距 2020 年 早了 2020 年 。
  • 已知天干 有 10 个, 那么 2020%10=0 剩下的都是整个轮回,即到了 0000 年 是庚 X 年,即天干是 庚 。

再按照这个方法算地支 是 2020%12=4 及还要向前推四年 地支为申。

即 0000 年为庚申年,那么根据模拟法可知。

N%10=0 时 天干为庚

N%10=1 时 天干为辛

...

以此类推

N%12=0 时 地支为申

N%12=1 时 地支为酉 ...

以此类推:

那我们很容易就能实现判断代码的编写:

package easy;

import java.util.Scanner;

public class 天干地支 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		
		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"};
		
		System.out.println(tianGan[n%10]+""+dizhi[n%12]);
	}
}

上述代码中把 "geng","xin","ren","gui",提到了数组的前面,是因为 0000 年的天干是 "geng",所以要把"geng"以及"geng"后面的都放到数组的前面。"shen","you","xu","hai"的提前和上面的思路一样。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45954420/article/details/123604107

第十一届蓝桥杯 2020年国赛真题 (Java 大学C组)-爱代码爱编程

蓝桥杯 2020年国赛真题(Java 大学 C 组 ) #A 美丽的 2#B 合数个数#C 扩散#D 阶乘约数#E 本质上升序列#F 天干地支#G 皮亚诺曲线距离#H 蓝肽子序列#I 画廊#J 答疑 国赛现场失误还是挺多的,就个人准备程度而言除了皮亚诺不敢分配时间去推导,其他的题都可以K掉,结果却是应该只K了六七题,还好今年没特等,不然自己

2020第十一届蓝桥杯-决赛-Java大学-C组-爱代码爱编程

试题 A: 美丽的 2 本题总分:5 分 【问题描述】 小蓝特别喜欢 2,今年是公元 2020 年,他特别高兴。 他很好奇,在公元 1 年到公元 2020 年(包含)中,有多少个年份的数位中 包含数字 2? 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。 p

2022.03.18_每日一题-爱代码爱编程

题目 2599: 蓝桥杯2020年第十一届国赛真题-天干地支 时间限制: 1Sec 内存限制: 128MB 提交: 55 解决: 29 题目描述 古代中国使用天干地支来记录当前的年份。 天干一共有十个,分别为:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊 (wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ)。 地支

蓝桥31天|今天3道题Day12|C++-爱代码爱编程

1.打水问题 贪心 #include<iostream> #include <algorithm> #include <vector> #include <cmath> using namespace std; const int N=1010; vector<int>num; vector

第十一届蓝桥杯 2020年国赛真题(Java 大学C组)-爱代码爱编程

蓝桥杯 2020年国赛真题(Java 大学C组)                 #A 美丽的 2                 #B 合数个数                 #C 扩散                 #D 阶乘约数                 #E 本质上升序列                 #F 天干地支   

2022.03.19京东算法第一题攻城计-爱代码爱编程

严正声明:转载请注明出处!!! 攻城计 题目描述: 小气正在玩一款名为“攻城计”的策略游戏。现在,小七正在率领自己的军队攻打一座城池。 通过一段时间的游玩,小七的军队目前有a辆坦克。而“攻城计”是一个回合制游戏,一个回合如下: 小七的军队中的每辆坦克攻击锁选择的一座碉堡。这座碉堡损失一点生命值。当一座碉堡失去所有的生命值时,它就被摧毁了。小七可

leetcode:存在重复元素-爱代码爱编程

思路分析:    这道题有两种解法。第一种解法是定义一个标记数组,如果遇到一个数字,就判断这个数字是否出现过,如果没有出现过就标记为1代表出现了一次。如果出现过就直接跳出循环输出即可,需要注意的是由于可能存在负数,所以要定义map。第二种解法是把所有数字排个序,判断相邻的两个数字是否相等即可。 代码实现1: class Soluti

#785 Is Graph Bipartite?-爱代码爱编程

Description There is an undirected graph with n nodes, where each node is numbered between 0 and n - 1. You are given a 2D array graph, where graph[u] is an array of nodes that n

Algo_Graph,最值路径Floyd-爱代码爱编程

catalog 最值路径加法性拆分性Floyd算法 最值路径 对于图论的 (最值路径) 问题, 即最小路径: 边权和最小的路径 最大路径: 边权和最大的路径 有一个前提: 求最小路径时, 图中不可以有 (负环)求最大路径时, 图中不可以有 (正环)环: 从A点出发, 一笔画的, 经过{>=1}条路径 (可能经过0个点, 此时该环为自

合适数对(树状数组 || 归并)-爱代码爱编程

合适数对 [Link](4316. 合适数对 - AcWing题库) 题意 思路 树状数组设 s i s_i

LeetCode73-矩阵置零-数组-矩阵-模拟-爱代码爱编程

原题链接 Note: 这里要注意的就是不能让更改操作影响后面的结果 就是不能这个新改成的0导致其他的行(列)变成0了 比如说第一个样例,不能说第一行第二个位置变成0了,结果后面操作的时候给第一行变成0了 要原地算法,直接用给的数组,第一行来记录这一列有没有0 第一列来记录每一行有没有0 开两个变量来记录第一行第一列有没有0 最后在遍历这些标志位来判

高精度除法-爱代码爱编程

794. 高精度除法 - AcWing题库 #include<iostream> #include<vector> #include<algorithm> using namespace std; vector<int> div(vector<int> &A,int b,int

实现二叉树先序,中序和后序遍历-爱代码爱编程

C++实现二叉树三种遍历方式,非递归。 /** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { public: /** * * @param ro

卧槽,做Python兼职又接了一个大单,真香-爱代码爱编程

每年的第一季度,是Python兼职接单的高潮期,近段时间,各行业对爬虫类和数分类服务的需求量呈指数级的暴增。圈子里的朋友双休都没闲着,趁着旺季接单大赚一笔。 所以,最近在公众号后台咨询技术变现、兼职接单问题的朋友也越来越多。 最近十天收到了六百多条关于兼职的留言,我发现有些问题出现的频率很高,将大家的困惑总结归纳之后,大体上可以分为三种情况: 1

【蓝桥杯】十四招式冲刺之 “第七招”《打表法与模拟法》-爱代码爱编程

前言 -🏀大家好,我是BXuan,热爱编程与篮球的软件工程大二学生一名 -📚近期在准备4月份的蓝桥省赛,本章与大家一起聊聊有关打表法与模拟法(优化的暴力法)! -🏃‍放弃不难,但坚持一定很酷。 文章目录 🚀打表法与模拟法📚知识点😁真题模拟1️⃣算式问题2️⃣求值3️⃣既约分数4️⃣天干地支👏小结 🚀打表法与模拟法 📚知识点 打

第十一届蓝桥杯国赛题目题解_一个数如果除了 1 和自己还有其他约数,则称为一个合数。例如:1, 2, 3不是合数,4,_江河万古的博客-爱代码爱编程

试题 A: 美丽的 2 【问题描述】   小蓝特别喜欢 2,今年是公元 2020 年,他特别高兴。他很好奇,在公元 1 年到公元 2020 年(包含)中,有多少个年份的数位中包含数字 2? 题解   简单的遍历,只需