当前位置:
首页 >
1332: 生日日数
发布时间:2024/9/3
46
豆豆
生活随笔
收集整理的这篇文章主要介绍了
1332: 生日日数
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1332: 生日日数
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 339 Solved: 163
[Submit][Status][Web Board]
Description
CCC老师的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。
Input
输入有多行,格式为YY MM DD 其中1949<=YY<=2006,日期绝对合法。
Output
输出有多行。即CCC老师生日第一万天以后的日期,格式为 “Y-M-D”。
Sample Input
1979 4 16
Sample Output
2006-9-1
HINT
Source
AC_code~:
#include <stdio.h> bool leapyear(int y) {return (y%4==0&&y%100)||(y%400==0); } int main() {int month[]= {0,31,0,31,30,31,30,31,31,30,31,30,31};int y,m,d;while(~scanf("%d%d%d",&y,&m,&d)){int days = 10000 + d;if(leapyear(y))month[2] = 29;elsemonth[2] = 28;for(int i = 1; i <= m-1; i++)//从y年1月1号算10000+d+month[1...m-1]天days += month[i];for(int i = 0; days >= 365; i++)//直到days剩下不到一年好确定月日{if(leapyear(y++))days -= 366;elsedays -= 365;}if(leapyear(y))month[2] = 29;elsemonth[2] = 28;int sum = 0;int new_y,new_m = 1,new_d = 1;//如果days==0,new_m和new_d应该为1,所以赋初值为1for(int i = 1; i <= 12; i++){sum += month[i];if(sum>=days&&sum-month[i]<days){new_m = i;new_d = month[i] -(sum - days);break;}}new_y = y;printf("%d-%d-%d\n",new_y,new_m,new_d);}return 0; }总结
以上是生活随笔为你收集整理的1332: 生日日数的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 1205: 正序数(归并排序统计正序数)
- 下一篇: 1390: 队列问题(1)(vector