AT—招待状 题解

题目传送门

更好的阅读体验?

一个不太一样的思路:

  • 直接算两个日期距离 \(1\)\(1\) 日多少天,再用大的天数减去小的天数,即为题目所求。

代码:

#include<bits/stdc++.h>
using namespace std;
int ma,da,mb,db,Daya,Dayb;
//全局变量初始值为 0 
int month[20]={0,31,29,31,30,31,30,31,31,30,31,30,31};
//预处理数组,方便计算 
int main()
{
	cin>>ma>>da>>mb>>db;
	//分别计算从 1 月 1 日起 距离两个日期多少天 
	//再用大的天数减小的 , 即为答案 
	for(int i=1;i<=ma-1;i++)  Daya=Daya+month[i];
	Daya=Daya+da;
	for(int i=1;i<=mb-1;i++)  Dayb=Dayb+month[i];
	Dayb=Dayb+db;
	cout<<Dayb-Daya<<endl;
	//两个日期做差,就是答案 
	//《 最后要有换行 》 
	return 0;
}

\(5ms\) 最优解

posted @ 2025-02-08 16:42  Wy_x  阅读(9)  评论(0)    收藏  举报