当前位置: 代码迷 >> 编程 >> 天勤OJ 标题1406: 计算天数
  详细解决方案

天勤OJ 标题1406: 计算天数

热度:2054   发布时间:2013-02-26 00:00:00.0
天勤OJ 题目1406: 计算天数
题目描述

输入年月日,计算该填是本年的第几天。例如1990 20 日是1990 年的第263 天,

2000 日是2000 年第122 天。(闰年:能被400 正除,或能被整除但不能被100

整除。每年1357810 为大月)

 

输入

输入第一行为样例数m,接下来m行每行3个整数分别表示年月日。

 

输出

输出m行分别表示题目所求。

 

样例输入
2
1990 9 20
2000 5 1
 

样例输出
263
122
 

提示 [+]

*** 提示已隐藏,点击上方 [+] 可显示 ***

 

来源

北京理工大学计算机专业2003年研究生复试上机试题

 
/**********************************   日期:2013-2-15*   作者:SJF0115*   题号: 天勤OJ 题目1406: 计算天数*   来源:http://acmclub.com/problem.php?id=1406*   结果:AC*   来源:北京理工大学计算机专业2002年研究生复试上机试题*   总结:**********************************/#include <stdio.h>#include <string.h>int dayOfMonth[13][2] = {	0,0,    31,31,	59,60,	90,91,	120,121,    151,152,	181,182,	212,213,	243,244,	273,274,	304,305,	334,335,	365,366,};//判断闰年int leap_year(int year){	if((year%100 != 0 && year%4 == 0) || (year % 400 == 0)){		return 1;	}	else{		return 0;	}}int main(){    int day,year,month,n,i;	scanf("%d",&n);	//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);     for(i = 0;i < n;i++)    {		//输入年月日		scanf("%d %d %d",&year,&month,&day);		//计算该填是本年的第几天。		printf("%d\n",dayOfMonth[month-1][leap_year(year)] + day);	}	return 0;}


/**********************************   日期:2013-2-15*   作者:SJF0115*   题号: 天勤OJ 题目1406: 计算天数*   来源:http://acmclub.com/problem.php?id=1406*   结果:AC*   来源:北京理工大学计算机专业2002年研究生复试上机试题*   总结:**********************************/#include <stdio.h>#include <string.h>#include <iostream>using namespace std;//闰年int Month[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};//判断闰年  int leap_year(int year){      if((year%100 != 0 && year%4 == 0) || (year % 400 == 0)){          return 1;      }      else{          return 0;      }  }  int main(){    int day,year,month,n,i,j,sum;      scanf("%d",&n);      //freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);       for(i = 0;i < n;i++)      {  		sum = 0;        //输入年月日          scanf("%d %d %d",&year,&month,&day);  		//非闰年		if(leap_year(year) == 0){			Month[2] = 28;		}		else{			Month[2] = 29;		}        //计算该填是本年的第几天。 		for(j = 1;j < month;j++){			sum += Month[j];		}        printf("%d\n",sum + day);      }      return 0;  }