P8738 [蓝桥杯 2020 国 C] 天干地支

两种方法

复制代码
#include<bits/stdc++.h>
using namespace std;

int main(){
	int year;
	cin>>year;
	string tg[10] = {"geng", "xin", "ren", "gui","jia", "yi", "bing", "ding", "wu", "ji" };
	string dz[12] = {"shen", "you", "xu", "hai","zi", "chou", "yin", "mao", "chen", "si", "wu", "wei" };
	
	
	int yushu=(year)%60;
	
	
	int i=yushu%10;
	int j=yushu%12;
	cout<<tg[i]<<dz[j];
	return 0;
	
	
	
	
}

这种是数组偏移,其实两种做法的核心都是将2044年%60后的到的数4偏移成0,即将jiazi年与4对应上。

第二种就是将年份加上56(60-4)得到,两种的结果都是一样的,但是我不知道为什么year-4有一个答案是错的,洛谷给不出测试用例就比较难改。

偏移值还是不错的,在循环队列中也用到了加偏移值%队列长度

相关推荐
β添砖java2 分钟前
深度优先搜索DFS
算法·深度优先
小糯米6015 分钟前
C++ 并查集
java·c++·算法
IronMurphy5 分钟前
【算法三十四】39. 组合总和
算法·深度优先
重庆小透明5 分钟前
力扣刷题【3】相交链表
算法·leetcode·链表
算法鑫探5 分钟前
C语言实战:学生成绩统计与分析
c语言·数据结构·算法·新人首发
IAUTOMOBILE8 分钟前
Code Marathon 项目源码解析与技术实践
java·前端·算法
Lyyaoo.8 分钟前
【JAVA基础面经】深拷贝与浅拷贝
java·开发语言·算法
qq_4480111619 分钟前
C语言的结构体
c语言
x_xbx32 分钟前
LeetCode:202. 快乐数
算法·leetcode·职场和发展
老虎06271 小时前
LeetCode热题100 刷题笔记(第四天)二分 「 寻找两个正序数组的中位数」
笔记·算法·leetcode