文章

60

粉丝

361

获赞

43

访问

524.2k

头像
最简单的暴力算法
P1290 上海交通大学/西北工业大学2019机试
发布于2021年1月11日 20:02
阅读数 9.5k

这道题机试的话,我觉得最快的是暴力算法,毕竟思考年份啥的+1-1的关系比较费脑细胞

算法的思想是,从较小的时间开始,一天一天的加,加到和较大的时间一样为止。看加了多少次。

这样思路就很清晰了

#include<iostream>
#include <string>
using namespace std;

int main()
{
	int month[2][13]=
	{{0,31,28,31,30,31,30,31,31,30,31,30,31},
	 {0,31,29,31,30,31,30,31,31,30,31,30,31}
	};
	int num1,num2;
	while(cin>>num1)
	{
		cin>>num2;
		int cnt=1;
		if(num1>num2)//进行交换 确保num1最大
		{
			int temp=num1;
			num1=num2;
			num2=temp;
		}
		int year1=num1/10000,month1=num1%10000/100,day1=num1%100;
		int year2=num2/10000,month2=num2%10000/100,day2=num2%100;
		int num1=0,num2=0;
		while(!(year1==year2&&month1==month2&&day1==day2))
		{
			//判断闰年
			int flag=0;
			if((year1%400==0)||(year1%4==0)&&(year1%100!=0))
				flag=1;
			else 
				flag=0;

			day1++;
			cnt++;
			if(day1>month[flag][month1])
			{
				day1=1;
				month1++;
				if(month1>12)
				{
					month1=1;
					year1++;
				}
			}
		}...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发