题解 | 计算天数
#include <bits/stdc++.h> using namespace std; int date[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; bool isLeapYear(int year){ return (year%4==0&&year%100!=0)||year%400==0; } int main() { int n; while (cin >> n) { while (n--) { int year, month, day,k=0; cin >> year >> month >> day; if(isLeapYear(year))k=1; for(int i=1;i<month;i++){ day+=date[k][i]; } cout<<day<<endl; } } }
经典题目,唯一难度在于leapyear判定,但是也在注释介绍了