小豪算日期

时间: 1ms        内存:128M

描述:

时光飞逝,转眼间小豪就要期末考试了,这次老师给小豪出了什么题呢;原来老师是想要小豪算出来任意某年的某天是那一年的哪一天,比如2019年1月1日是2019年的第一天;相信在大家的帮助下,小豪一定能够做出来。

输入:

三个整数,分别代表年,月,日。

输出:

一个整数,即你求出的第几天。

示例输入:

2019
1
1

示例输出:

1

提示:

参考答案(内存最优[1120]):

#include<stdio.h>
int main()
{
int day,month,year,sum=0,leap;
scanf("%d %d %d",&year,&month,&day);
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day;
if((year%400==0||(year%4==0&&year%100!=0))&&month>2)
sum++;
printf("%d",sum);
return 0;
}

参考答案(时间最优[1]):

#include<stdio.h>
int main()
{
int day,month,year,sum=0,leap;
scanf("%d %d %d",&year,&month,&day);
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day;
if((year%400==0||(year%4==0&&year%100!=0))&&month>2)
sum++;
printf("%d",sum);
return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。