蓝桥杯 试题 基础练习 特殊回文数——16行代码AC

都开始做蓝桥杯了,展示那复杂的算法技巧干啥啊? 暴力它不香吗? 不动脑它不香吗? 这代码她不美吗?

储备知识:

set容器用法→set头文件函数详解

注意点:

1、我们知道数的位数(5、6),也知道都是什么数(大于1W,小于100W),又因为这是蓝桥杯,不如就列六个循环,分别从1遍历到9(时间复杂度虽然是O(n^6),但n最大仅仅为10,耗时很少), 找出符合的存入set容器(set具有去掉重复元素且排序的功能)。
2、注意输出一定是从小到大,并且无重复。这也是我选择set存放数的原因。

代码:

#include<bits/stdc++.h>
//#include<iostream>
//#include<algorithm>
//#include<set>
using namespace std;
int main() {
	int x; cin >> x;       
	set<int>s;
	for(int i = 0; i <= 9; i++) 
		for(int j = 0; j <= 9; j++) 
			for(int k = 0; k <= 9; k++) 
				for(int l = 0; l <= 9; l++) 
					for(int m = 0; m <= 9; m++) 
						for(int n = 0; n <= 9; n++) {
							if(((j+k+l+m+n)==x)&&(j==n)&&(k==m)) s.insert(j*10000+k*1000+l*100+m*10+n);
							if(((i+j+k+l+m+n)==x)&&(i==n)&&(j==m)&&(k==l)&&(n>0)) s.insert(i*100000+j*10000+k*1000+l*100+m*10+n); }
	for(set<int>::iterator it = s.begin(); it != s.end(); it++) cout << *it << endl;
	return 0;
}
发布了73 篇原创文章 · 获赞 61 · 访问量 4764

猜你喜欢

转载自blog.csdn.net/weixin_43899069/article/details/104546979