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\) 最优解。
以下是博客签名,正文无关
本文来自博客园,作者:Wy_x,转载请在文首注明原文链接:https://www.cnblogs.com/Wy-x/articles/18704594
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC-BY-NC-SA 4.0 协议)进行许可。

浙公网安备 33010602011771号