nyoj_75 日期計算

日期計算

時間限制:3000 ms  |  內存限制:65535 KB
難度:1
描述
如題,輸入一個日期,格式如:2010 10 24 ,判斷這一天是這一年中的第幾天。
輸入
第一行輸入一個數N(0<N<=100),表示有N組測試數據。後面的N行輸入多組輸入數據,每行的輸入數據都是一個按題目要求格式輸入的日期。
輸出
每組輸入數據的輸出佔一行,輸出判斷出的天數n
樣例輸入
3
2000 4 5
2001 5 4
2010 10 24
樣例輸出
96
124
297

分析:

打2個表,一個每月的天數表map(2月預設28天);另一個記錄除去該月天數,之前的天數之和dp;

則對於輸入的每個日期如果月份≤2,則直接讀表dp再加上本月的天數。

否則判斷閏年平年,如果閏年則天數+1,否則照常。

代碼:

#include<cstdio>
int map[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int dp[13]={0};
void fun()
{
	for(int i=2;i<=12;i++)
		dp[i]=dp[i-1]+map[i-1];
}
int run(int n)
{
	if(n%4==0&&n%100||n%400==0)
		return 1;
	return 0;
}
int main()
{
	int T;
	scanf("%d",&T);
	fun();
	while(T--)
	{
		int a,b,c;
		scanf("%d%d%d",&a,&b,&c);
		if(b<=2)
			printf("%d\n",dp[b]+c);
		else
			printf("%d\n",dp[b]+c+run(a));
	}
	return 0;
}


發佈了48 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章