霍士弘 @ 2019-02-04 10:56:37
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
using namespace std;
int change(string s)
{
int num = 0;
for(int i = 0;i < s.size();i++)
{
num = num * 10 + (s[i] - '0');
}
return num;
}
int isrun(int n)
{
if(n % 4 == 0 && n % 100 != 0)
{
return 1;
}
if(n % 400 == 0)
{
return 1;
}
return 0;
}
int isone(int n)
{
if(n >= 0 && n <= 10)
{
return 1;
}
return 0;
}
int isround(int i,int j,int k)
{
if(isone(j) && isone(k))
{
if(i / 1000 == k%10 && i/100%10 == 0 && i/10%10 == j%10 && i%10 == 0)
{
return 1;
}else
{
return 0;
}
}else if(isone(j) && !isone(k))
{
if(i / 1000 == k % 10 && i/100%10 == k/10%10 && i/10%10 == j%10 && i%10 == 0)
{
return 1;
}else
{
return 0;
}
}else if(!isone(j) && isone(k))
{
if(i/1000 == k % 10 && i/100%10 == 0 && i/10%10 == j%10 && i%10 == j/10%10)
{
return 1;
}else
{
return 0;
}
}else if(!isone(j) && !isone(k))
{
if(i/1000 == k%10 && i/100%10 == k/10%10 && i/10%10 == j%10 && i%10 == j/10%10)
{
return 1;
}else
{
return 0;
}
}
}
int main()
{
string d1,d2;
cin>>d1>>d2;
int d1y,d1m,d1d,d2y,d2m,d2d;
d1y = change(d1.substr(0,4));
d2y = change(d2.substr(0,4));
d1m = change(d1.substr(4,2));
d2m = change(d2.substr(4,2));
d1d = change(d1.substr(6,2));
d2d = change(d2.substr(6,2));
int cnt = 0;
int run[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
int norun[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if(d1 == d2)
{
if(isround(d1y,d1m,d1d))
{
cnt = 1;
cout<<cnt;
}
cout<<cnt;
return 0;
}
for(int i = d1y;i <= d2y;i++)
{
for(int j = 1;j <= 12;j++)
{
for(int k = 1;k <= 31;k++)
{
//ÉÏϱ߽紦Àí
//up
if(i == d2y && j == d2m && k > d2d)
{
break;
}
if(i == d2y && j > d2m)
{
break;
}
//down
if(i == d1y && j == d1m && k < d1d)
{
break;
}
if(i == d1y && j < d1m)
{
break;
}
//------------------------------------------
if(isrun(i) && k > run[j-1])
{
continue;
}
if(!isrun(i) && k > norun[j-1])
{
continue;
}
//ÅжϻØÎÄÊý
if(isround(i,j,k))
{
cnt++;
}
}
}
}
cout<<cnt;
}
求助
by Smile_Cindy @ 2019-02-04 11:06:33
@霍士弘
#include <bits/stdc++.h>
using namespace std;
int month(int k)
{
switch(k)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:return 31;
case 2:return 29;
default:return 30;
}
}
int main()
{
int sy,sm,sd;
int ey,em,ed;
scanf("%4d%2d%2d",&sy,&sm,&sd);
scanf("%4d%2d%2d",&ey,&em,&ed);
int ans=0;
for(int i=sy;i<=ey;i++)
{
int mon=i%10*10+i%100/10;
int day=i/1000+i%1000/100*10;
if(mon<1||mon>12)continue;
if(day<1||day>month(mon))continue;
if(i==ey)
{
if(mon>em)continue;
else if(mon==em&&day>ed)continue;
}
ans++;
}
printf("%d\n",ans);
return 0;
}
by cindy2007 @ 2019-02-04 11:15:25
您是洛谷春令营的吧(当然我也是)
by 霍士弘 @ 2019-02-04 15:59:10
@cindy2007 我不是