为了账号安全,请及时绑定邮箱和手机立即绑定

小朋友学算法(15):计算年份的天干地支

标签:
大数据

十天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸;
十二地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。

天干地支纪年法首先是天干在前,地支在后,比如今年2018就是戊戌年。

天干算法:
4、5、6、7、8、9、0、1、2、3对应的十天干就是
甲、乙、丙、丁、戊、己、庚、辛、壬、癸,
这里的数字是年份的最后的一位数字,比如2018年,最后一位是8,对应的天干就是戊。

地支算法:
用年代数除以12,后面的余数就代表某个地支,
余数分别为:4、 5、 6、 7、 8、 9、 10、 11、 0(能整除)、1、 2、3,
代表地支为:子、丑、寅、卯、辰、巳、午、 未、 申、酉、戌、亥
以2018年为例,2018 % 12 = 2,对应的地支就是戌。所以2018年是戊戌年。

实现代码:

#include<iostream>using namespace std;int main(){    long long year;    cin >> year;    // 输入年份
    
    // A-甲,B-乙,C-丙,D-丁,E-戊,F-己,G-庚,H-辛,I-壬,J-癸 
    char a[10] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};    
    // 1-子,2-丑,3-寅,4-卯,5-辰,6-巳,7-午,8-未,9-申,10-酉,11-戌,12-亥
    int b[12] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};    
    int single = year % 10;     // 天干是求个位数
    int index = (single - 4 + 10) % 10;    cout << a[index];    
    int mod = year % 12;    // 地支是求除以12的余数
    index = (mod - 4 + 12) % 12;    cout << b[index] << endl;     
    return 0;
}

运行结果:
第一组:

2018
E11

第二组:

2384036917920
G9



作者:海天一树X
链接:https://www.jianshu.com/p/9e283868670e


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
205
获赞与收藏
1008

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消