题解
2024-05-06 13:20:53
发布于:广东
30阅读
0回复
0点赞
难度开始提上来了!!!
这种模拟题我一般不做的,但为了小本本拼了(
动手模拟,由于范围小,可以一天一天(改年份也不是不可以)
#include <iostream>
#include <cstdio>
using namespace std;
int mth[] = {0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int n1, m1, k1, n2, m2, k2;
bool check(int x){//判断闰年
return x % 400 == 0 || x % 4 == 0 && x % 100;
}void s(){//交换
swap(n1, n2), swap(m1, m2), swap(k1, k2);
}
int main(){
scanf("%d-%d-%d %d-%d-%d", &n1, &m1, &k1, &n2, &m2, &k2);//读入
if(n1 > n2){
s();
}else if(n1 == n2 && m1 > m2){
s();
}else if(n1 == n2 && m1 == m2 && k1 > k2){
s();
}int ct = 0;
while(n1 != n2 || m1 != m2 || k1 != k2){
if(check(n1)) mth[2] = 29;
else mth[2] = 28;
k1++, ct++;
if(k1 > mth[m1]) m1++, k1 = 1;
if(m1 >= 13) n1++, m1 = 1;
//printf("%d-%d-%d\n", n1, m1, k1);
}cout << ct;
return 0;
}
时间复杂度:
这里空空如也
有帮助,赞一个