描述
根据输入的日期,计算是这一年的第几天。
保证年份为4位数且日期合法。
进阶:时间复杂度:O(n) O(n) ,空间复杂度:O(1) O(1)
输入描述:
输入一行,每行空格分割,分别是年,月,日
输出描述:
输出是这一年的第几天
示例1
输入:2012 12 31
输出:366
示例2:
输入:1982 3 4
输出:63
#include <iostream>
using namespace std;
int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main() {
int year,month,day;
while(cin>>year>>month>>day){
int sumdays=0;
for(int i=1;i<month;i++){
sumdays +=months[i];
}
if(year%4==0&&year%100!=0||year%400==0 && month>=3){
sumdays=sumdays+day+1;
}else{
sumdays=sumdays+day;
}
cout<<sumdays<<endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")

该程序接收年、月、日作为输入,计算出给定日期是一年中的第几天。考虑了闰年的条件,时间复杂度为O(n),空间复杂度为O(1)。示例中展示了不同日期的计算结果。
257

被折叠的 条评论
为什么被折叠?



