|
第几天?Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 97386 Accepted Submission(s): 36618
Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
Sample Output
已经ac的代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define M1 31 #define M2 30 int main() { int i,y,m,d,day,mm; char s[11]; while(scanf("%s",s)!=EOF) { y=m=d=day=i=0; for(i=0;s[i]!='/';i++) y=10*y+s[i]-'0'+0; for(i=i+1;s[i]!='/';i++) m=10*m+s[i]-'0'+0; for(i=i+1;s[i]!='/'&&s[i]!='\0';i++) d=10*d+s[i]-'0'+0; if(y%4==0&&y%100!=0||y%400==0) mm=29; else mm=28; switch(m){ case 1:day=d;break; case 2:day=M1+d;break; case 3:day=M1+mm+d;break; case 4:day=M1*2+mm+d;break; case 5:day=M1*2+mm+M2+d;break; case 6:day=M1*3+mm+M2+d;break; case 7:day=M1*3+mm+M2*2+d;break; case 8:day=M1*4+mm+M2*2+d;break; case 9:day=M1*5+mm+M2*2+d;break; case 10:day=M1*5+mm+M2*3+d;break; case 11:day=M1*6+mm+M2*3+d;break; case 12:day=M1*6+mm+M2*4+d; } printf("%d\n",day); } return 0; } |
hdu2005
最新推荐文章于 2023-07-26 21:56:30 发布