杭电oj水题2005 c++解法
IT入门小白一枚!写了几个杭电水题,代码大部分都是借鉴前辈们的灵感,自己又改了一些。下面是问题描述和还热乎的代码~
Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
链接: http://acm.hdu.edu.cn/showproblem.php?pid=2005.
代码
#include <iostream>
int main(int argc, char** argv) {
int d[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int a,b,c;
while(scanf("%d/%d/%d",&a,&b,&c)!=EOF){
int sum = 0;
for(int i=0;i<b-1;i++){
sum+=d[i];
}
if((a%100!=0&&a%4==0) ||a%400==0 ){//闰年判断
if(b>2){
sum=sum+c+1;
}else{
sum=sum+c;
}
}//闰年判断
else{//平年直接加
sum=sum+c;
}
printf("%d\n",sum);
}
return 0;
}
还没入门的小白,代码写的可能不够简洁,欢迎大佬不吝赐教,嘻嘻嘻。