蓝桥杯 试题 基础练习 特殊回文数——16行代码AC
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯 试题 基础练习 特殊回文数——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; }總結
以上是生活随笔為你收集整理的蓝桥杯 试题 基础练习 特殊回文数——16行代码AC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯 试题 基础练习 十六进制转十进制
- 下一篇: 蓝桥 试题 基础练习 杨辉三角形——11