牛客网 KY222 打印日期
发布日期:2021-07-22 07:28:54
浏览次数:3
分类:技术文章
本文共 1188 字,大约阅读时间需要 3 分钟。
利用一个数组表示月份及对应的天数,初始每个元素值均为0,按元素下标递增顺序将所给天数分配到各个月份对应的数组位置,最后输出最后一个不为0的数组下标及元素即得到月份及天数。
#include#include #include using namespace std;bool isLeapYear(int year) { //判断是否为闰年 if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) return true; else return false;}void calculate(int a[15], int& b, int c, int& d) { //依次传入结果数组,月份, if ((d - c) > 0) { //当月天数,总天数 a[b] = c; b++; d -= c; } else { a[b] = d; d = 0; }}int main(){ int year, day; set bigMonth = { 1,3,5,7,8,10,12 }; //31天的月份集合 while (scanf("%d %d", &year, &day) != EOF) { int month = 1; int statistical[15] = { 0 }; while (day > 0) { if (bigMonth.find(month) != bigMonth.end()) { //判断是否为31天的月份 calculate(statistical, month, 31, day); } else if (month == 2) { if (isLeapYear(year)) { calculate(statistical, month, 29, day); } else { calculate(statistical, month, 28, day); } } else { calculate(statistical, month, 30, day); } } cout << year << "-" << right << setw(2) << setfill('0') << month << "-" << right << setw(2) << setfill('0') << statistical[month] << endl; } }
转载地址:https://blog.csdn.net/m0_45689014/article/details/113715636 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年03月28日 15时08分50秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
oracle所需的环境,转:面对一个全新的oracle环境,首先应该了解什么?
2019-04-21
linux 小数四则运行,shell四则运算(整数及浮点数)的方法介绍
2019-04-21
linux系统分区后进入紧急模式,Linux系统的救援模式应用详解
2019-04-21
linux创建硬盘分区lvm,LVM创建及分区调整、更换LVM硬盘
2019-04-21
FreeBSD可以安装Linux软件吗,在Linux服务器上面通过网络安装FreeBSD
2019-04-21
南昌工程学院c语言答案,南昌工程学院C语言程序设计基础课件第3讲运算符和表达式...
2019-04-21
python学画画_python学画画(下)
2019-04-21
老男孩mysql 百度云_英语语录:除了你,没人能掌控你的幸福
2019-04-21
mysql获取刚新增的数据库_如何取得刚插入数据库的数据的id mysql
2019-04-21
python将10到1递减_(Python)如何将3个递减列表合并成一个递减列表?
2019-04-21