请你计算出 x 年 y 月 z 日是 x 年的第几天。
请注意闰年对答案的影响。
输入格式
一行三个整数,x,y 和 z。(1583 ≤ x ≤ 2100)。数据保证输入合法。
输出格式
一个整数,表示是第几天。
输出时每行末尾的多余空格,不影响答案正确性
样例输入1
2016 3 1
样例输出1
61
样例输入2
1900 3 1
样例输出2
60
解题思路
#include <iostream>
#include <algorithm>
using namespace std;
int days[13] = {31,28,31,30,31,30,31,31,30,31,30,31};
bool Isleapyear(int year){
if((year % 4 == 0 && year % 100 != 0 ) || (year % 400 == 0)){
return true;
}else{
return false;
}
}
int main(){
int year,month,day,sum = 0;
cin >> year >> month >> day;
if(Isleapyear(year)){
days[1] = 29;
for(int i = 0;i < (month - 1);i++){
sum += days[i];
}
sum += day;
}else{
for(int i = 0;i < (month - 1);i++){
sum += days[i];
}
sum += day;
}
cout << sum;
return 0;
}