AcWing 3218. 日期计算c++带注释
原题链接
简单
作者:
威子
,
2021-02-28 10:40:00
,
所有人可见
,
阅读 305
时间复杂度:
O(n)
算法思路:
模拟每月的天数,进行递减计算。
#include <bits/stdc++.h>
using namespace std;
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
int year,mon=1,day;
int res=0;
cin>>year>>day;
//判断闰年
if((year%4==0&&year%100!=0)||year%400==0) month[2]+=1;
/*
只有day>month才需要计算,
例如输入:2000 60
应该输出:2月29号
而不是:3月0号
*/
for(int i=1;i<=12&&day>month[i];i++){ //只有大于才需要算
mon++;
day-=month[i];
}
//输出
printf("%d\n%d",mon,day);
return 0;
}