蓝桥杯 试题 基础练习 特殊回文数——16行代码AC
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯 试题 基础练习 特殊回文数——16行代码AC
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
都開(kāi)始做藍(lán)橋杯了,展示那復(fù)雜的算法技巧干啥啊? 暴力它不香嗎? 不動(dòng)腦它不香嗎? 這代碼她不美嗎?
儲(chǔ)備知識(shí):
set容器用法→set頭文件函數(shù)詳解
注意點(diǎn):
1、我們知道數(shù)的位數(shù)(5、6),也知道都是什么數(shù)(大于1W,小于100W),又因?yàn)檫@是藍(lán)橋杯,不如就列六個(gè)循環(huán),分別從1遍歷到9(時(shí)間復(fù)雜度雖然是O(n^6),但n最大僅僅為10,耗時(shí)很少), 找出符合的存入set容器(set具有去掉重復(fù)元素且排序的功能)。
2、注意輸出一定是從小到大,并且無(wú)重復(fù)。這也是我選擇set存放數(shù)的原因。
代碼:
#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; }總結(jié)
以上是生活随笔為你收集整理的蓝桥杯 试题 基础练习 特殊回文数——16行代码AC的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 蓝桥杯 试题 基础练习 十六进制转十进制
- 下一篇: 蓝桥 试题 基础练习 杨辉三角形——11