算法1
C++ 代码
#include <bits/stdc++.h>
using namespace std;
int a, b, c;
bool Runyear(int year){
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
bool legal(int year, int month, int day){
if(month < 1 || month > 12 || day < 1 || day > 31) return false;
int days;
if(Runyear(year)) days = 29;
else days = 28;
if(month == 2 && day > days) return false;
int d[4] = {4, 6, 9, 11};
for(int i = 0; i < 4; ++ i){
if(month == d[i] && day > 30) return false;
}
return true;
}
//年月日,月日年,日月年
int main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
scanf("%d/%d/%d", &a, &b, &c);
for(int i = 1960; i <= 2059; ++ i)
for(int j = 1; j <= 12; ++ j)
for(int k = 1; k <= 31; ++ k){
if(legal(i,j,k)){
if(i % 100 == a && j == b && k == c)printf("%d-%02d-%02d\n", i, j, k);
else if(i % 100 == c && j == a && k == b)printf("%d-%02d-%02d\n", i, j, k);
else if(i % 100 == c && j == b && k == a)printf("%d-%02d-%02d\n", i, j, k);
}
}
return 0;
}