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有一个答案是错的,洛谷给不出测试用例就比较难改。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值