建设网站的发布与推广,个人网站做经营性,产品推广介绍怎么写,第三方平台广告营销是什么题目描述 题目分析
对于输入的abc我们可以以a为年也可以以c为年#xff0c;将abc,cab,cba这三种情况进行判断合法性即可#xff0c;注意需要排序去重#xff0c;所以考虑使用set
此处为纯模拟的写法#xff0c;但使用循环代码会更加简洁。
方法一#xff1a; #include将abc,cab,cba这三种情况进行判断合法性即可注意需要排序去重所以考虑使用set
此处为纯模拟的写法但使用循环代码会更加简洁。
方法一 #includebits/stdc.h
using namespace std;
const int N 2e5 10;
setstring st;
string s[N];
int cnt;
int m[13] {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool is_ren(int x)
{if((x % 4 0 x % 100 ! 0)||(x % 400 0))return true;return false;
}
int main()
{int a, b, c;scanf(%d/%d/%d,a, b, c);//以a为年 //abcif(a 59){//abcif(b 12 b 0){int x 2000 a;if(is_ren(x))m[2] 29;else m[2] 28;if(c m[b] c 0){cnt ;s[cnt] 20;if(a 10)s[cnt] 0;s[cnt] (to_string(a) - );if(b 10)s[cnt] 0;s[cnt] (to_string (b) -);if(c 10)s[cnt] 0;s[cnt] to_string(c);st.insert(s[cnt]);}}}else if(a 59){//abcif(b 12 b 0){int x 1900 a;if(is_ren(x))m[2] 29;else m[2] 28;if(c m[b] c 0){cnt ;s[cnt] 19;if(a 10)s[cnt] 0;s[cnt] to_string(a) - ;if(b 10)s[cnt] 0;s[cnt] to_string (b) -;if(c 10)s[cnt] 0;s[cnt] to_string(c);st.insert(s[cnt]);}}}//以c为年 //cab, cba if(c 59){//cabif(a 12 a 0){int x 2000 c;if(is_ren(x))m[2] 29;else m[2] 28;if(b m[a] b 0){s[ cnt] 20;if(c 10)s[cnt] 0;s[cnt] to_string(c) - ;if(a 10)s[cnt] 0;s[cnt] to_string (a) -;if(b 10)s[cnt] 0;s[cnt] to_string(b);st.insert(s[cnt]);}}//cbaif(b 12 b 0){int x 2000 c;if(is_ren(x))m[2] 29;else m[2] 28;if(a m[b] a 0){cnt ;s[cnt] 20;if(c 10)s[cnt] 0;s[cnt] to_string(c) - ;if(b 10)s[cnt] 0;s[cnt] to_string (b) -; if(a 10)s[cnt] 0;s[cnt] to_string(a);st.insert(s[cnt]);} }}else if(c 59){//cabif(a 12 a 0){int x 1900 c;if(is_ren(x))m[2] 29;else m[2] 28;if(b m[a] b 0){cnt ;s[cnt] 19;if(c 10)s[cnt] 0;s[cnt] to_string(c) - ;if(a 10)s[cnt] 0;s[cnt] to_string (a) -;if(b 10)s[cnt] 0;s[cnt] to_string(b);st.insert(s[cnt]);}}//cbaif(b 12 b 0){int x 1900 c;if(is_ren(x))m[2] 29;else m[2] 28;if(a m[b] a 0){cnt ;s[cnt] 20;if(c 10)s[cnt] 0;s[cnt] to_string(c) - ;if(b 10)s[cnt] 0;s[cnt] to_string (b) -;if(a 10)s[cnt] 0;s[cnt] to_string(a);st.insert(s[cnt]);}}}for(auto i : st){cout i \n;}return 0;
}
方法二
#includebits/stdc.h
using namespace std;
int days[13] {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool check_valid(int year, int month, int day)
{if(month 0 || month 12)return false;if(day 0)return false;if(month ! 2){if(day days[month])return false;}else{int leap year % 100 year % 4 0 || year % 400 0;if(day 28 leap)return false;}return true;
}
int main()
{int a, b, c;scanf(%d/%d/%d, a, b, c);for(int date 19600101; date 20591231; date ){int year date / 10000, month date % 10000 / 100, day date % 100;if(check_valid(year, month, day)){if(year % 100 a month b day c ||month a day b year % 100 c ||day a month b year % 100 c)printf(%d-%02d-%02d\n, year, month, day);}}return 0;
}