知识点
- 预处理
因为每个月的天数是固定的(2 月单独讨论),可以用一个数组预先存储好每个月累加的天数,需要访问第 n 个月的天数时直接从数组中取出前 n-1 个月的天数,避免计算机重复计算耗费大量时间。
- 输入输出格式
scanf()
注意 &
符号不要忘了
代码
#include<stdio.h>
int days[13] = {0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
bool isLeapYear(int y){ //判断是否是闰年
if(y%100 == 0){ //整百年
if(y%400 == 0) return true;
else return false;
}
else{ //非整百年
if(y%4 == 0) return true;
else return false;
}
}
int main(){
int y, m, d;
int T;
scanf("%d", &T);
while(T--){
int ans;
scanf("%d:%d:%d",&y,&m,&d);
if(isLeapYear(y)){
if(m <= 2){
ans = days[m] + d;
}
else{
ans = days[m] + d + 1;
}
}
else{
ans = days[m] + d;
}
printf("%d\n", ans);
}
}
网友评论