hdoj 1201 (+基礎練習一)18歲生日
阿新 • • 發佈:2019-02-18
B - 18歲生日
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d
& %I64u
2
1992-2-1
1988-3-5
Description
當你還是18歲的時候,那個曾經一起追過的女孩剛好也是18歲,而且她的生日就要到了,你突然想到一個問題,是不是每個人到18歲生日所經過的天數都是一樣的呢?我們來算一下吧Input
首先輸入一個整數n,表示有n組資料,格式是YYYY-MM-DD。Output
對於每組資料輸出一行,每行一個數,表示從出生到18歲生日所經過的天數。如果沒有18歲生日,就輸出-1。Sample Input
Sample Output
6575 6574 程式碼:#include<cstdio> int run(int y) { if((y%4==0&&y%100!=0)||y%400==0) return 1; else return 0; } int main() { int t,y,m,d,i,sum; scanf("%d",&t); while(t--) { sum=365*18; scanf("%d-%d-%d",&y,&m,&d); for(i=y+1;i<y+18;i++)//考慮中間年份 { if(run(i)) sum++; } if(run(y)&&m<=2)//考慮初末兩年 sum++; if(run(y+18)&&m>=3) sum++; if(m==2&&d==29) printf("-1\n"); else printf("%d\n",sum); } return 0; }