您的位置:首页 > 其它

【NOJ】[1007] 第几天

2017-10-11 21:02 120 查看


[1007] 第几天

时间限制: 1000 ms 内存限制: 65535 K

问题描述

有一本记录了从1年到9999年的日历,

假设1年1月1日为第一天,现在问第Y年的第M月的第D天是第几天。

输入

有一本记录了从1年到9999年的日历,

假设1年1月1日为第一天,现在问第Y年的第M月的第D天是 第几天。

输出

对于每组数据,输出这是第几天。

样例输入

2
1 1 1
2 2 2


样例输出

1
398


#include<iostream>
using namespace std;
int Y[5] = { 0,365,730,1095,1461};
int M[13] = { 0,31,59,90,120,151,181,212,243,273,304,334,365};
int main() {
int n;
int y, m, d;
int yy, mm, dd;
int ans;
cin >> n;
while (n--) {
cin >> y >> m >> d;
ans = 0;
bool flag=false;
if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) flag = true;
ans += (y - 1) / 400 - (y - 1) / 100;
yy = (y - 1)/4;
y = (y - 1) % 4;
ans += yy*Y[4]+Y[y];
mm = m - 1;
ans += M[mm];
ans += d;
if (flag&&m > 2) ans++;
cout << ans << endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  NOJ ACM NBUT