首页 > 其他 > 详细

nyoj 219 An problem about date 日期计算 附加最优代码(基姆拉尔森公式)

时间:2015-04-25 16:39:24      阅读:154      评论:0      收藏:0      [点我收藏+]

第一次直接计算的   超时了。后来把天数存贮在数组中 也算过了 不知道这题为什么分类在动态规划里面

#include <stdio.h>
int main()
{
	int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31},year,mon,day;
	long long b[9605]={0},sum=0;
	for(int i=1600;i<9600;i++)
	{
		if(i%4==0&&i%100||i%400==0)
		sum+=366;
		else
		sum+=365;
		b[i]=sum;
	}
	while(scanf("%d %d %d",&year,&mon,&day)!=EOF)
	{
	    sum=b[year-1];
		if(year%4==0&&year%100||year%400==0)
		a[2]=29;
		else
		a[2]=28;
		for(int i=1;i<mon;i++)
		sum+=a[i];
		printf("%d\n",(sum+day+5)%7);
	}
	return 0;
}        
最优代码。。。我也是服了  神人哪里找的公式

 
#include<cstdio>
int main()
{
	int y,m,d;
	while(~scanf("%d%d%d",&y,&m,&d))
	{
		if(m<3) m+=12,--y;
		printf("%d\n",(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7); //蔡勒公式的变种
	}
}                      



nyoj 219 An problem about date 日期计算 附加最优代码(基姆拉尔森公式)

原文:http://blog.csdn.net/su20145104009/article/details/45271289

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!