1332: 生日日数
生活随笔
收集整理的這篇文章主要介紹了
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