新手启示者
#include <iostream>
using namespace std;
int mon[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int main(){
int k,x[1000000],y[1000000],num[1000000],a[1000000],b[1000000],c[1000000],d[1000000];
cin>>k;
for(int i=1;i<=k;i++){
cin>>x[i]>>y[i];
a[i]=x[i]/100,b[i]=y[i]/100,c[i]=x[i]%100,d[i]=y[i]%100;
for(int j=min(a[i],b[i]);j<=max(a[i],b[i]);j++){
num[i]+=mon[j];
}
if(x[i]<=y[i]){
num[i]+=mon[c[i]]-c[i];
num[i]+=d[i];
}else{
num[i]+=mon[d[i]]-d[i];
num[i]+=c[i];
}
if(num[i]<=100){
cout<<"NO\n";
}else{
cout<<"YES\n";
}
}
return 0;
}
汪宇航在2021-03-02 20:01:06追加了内容
#include <iostream>
#include <cmath>
using namespace std;
int mon[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int main(){
int k,x[1000000],y[1000000],num[1000000],num1[1000000];
cin>>k;
for(int i=1;i<=k;i++){
cin>>x[i]>>y[i];
if(y[i]<x[i]){
swap(x[i],y[i]);
}
for(int j=x[i]/100+1;j<y[i]/100;j++){
num[i]+=mon[j];
}
num[i]+=mon[(x[i]+1)/100]-x[i]%100;
num[i]+=y[i]%100;
if(num[i]<=100){
cout<<"NO\n";
}else{
cout<<"YES\n";
}
}
return 0;
}
20?
汪宇航在2021-03-03 16:34:49追加了内容
我会了
中级启示者
首先,输入不需要用数组
之后如果第一个日期大于第二个日期,就交换
求余下天数
int m1=x/100,d1=x%100;
int m2=y/100,d2=y%100;
int day=mon[m1]-d1+d2;
整月天数
for(int i=m1+1;i<m2;i++){
day+=mon[i];
}
最后判断如果day大于100,输出YES,否则输出NO
汪恺恒在2021-03-03 12:44:39追加了内容
还有你这num和x,y都不需要用数组
cin>>x>>y
就行了,因为这一次的计算结果和上一次无关
新手天翼
核心代码:
int n,a[2110],b[2110],month[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}
for(int i=1;i<=n;i++) {
int date1=max(a[i],b[i]),date2=min(a[i],b[i]),sum=0;
while (sum<=100 && date2<=1231) {
sum++;
date2++;
if (date2%100>month[date2/100]) {
date2-=month[date2/100];//天数清1
date2+=100;//月份+1
}
} if (date1<date2 || sum<100) cout<<"NO"<<endl; else cout<<"YES"<<endl;
}
祝你AC!!!!!
求采纳!!!!!!!!!!!