回文数字(dfs)

来源:互联网 发布:javashop b2b2c 源码 编辑:程序博客网 时间:2024/05/22 14:41
/*水题不表,dfs即可 */#include <iostream>#include <vector>#include <cstdio>using namespace std;int n;vector<int> ans;bool flag;void dfs5(int k, int sum){if(k == 2) {if(n - sum * 2 < 10 && n - sum * 2 >= 0) {ans.push_back(n - sum * 2);ans.push_back(ans[1]);ans.push_back(ans[0]);for(int i = 0; i < 5; i++)printf("%d", ans[i]);printf("\n");ans.pop_back();ans.pop_back();ans.pop_back();flag = true;}return;}for(int i = 0; i < 10; i++) {if(i == 0 && k == 0)continue;ans.push_back(i);dfs5(k+1, sum+i);ans.pop_back(); }}void dfs6(int k, int sum){if(k == 3) {if(sum == n / 2) {ans.push_back(ans[2]);ans.push_back(ans[1]);ans.push_back(ans[0]);for(int i = 0; i < 6; i++)printf("%d", ans[i]);printf("\n");ans.pop_back();ans.pop_back();ans.pop_back();flag = true;}return;}for(int i = 0; i < 10; i++) {if(i == 0 && k == 0)continue;ans.push_back(i);dfs6(k + 1, sum + i);ans.pop_back();}}int main(){cin >> n;flag = false;ans.clear();dfs5(0, 0);ans.clear();if(n % 2 == 0) dfs6(0, 0);if(!flag)printf("-1\n");return 0;} 

0 0
原创粉丝点击