本文最后更新于 664 天前,其中的信息可能已经有所发展或是发生改变。
思想:
- 模拟,枚举。
- 枚举进制从
i = 2 ~ 10
,判断i
进制下是否回文。 - 将数转换进制后,化为
string
判断即可。
代码:
#include <bits/stdc++.h>
using namespace std;
bool check(int x){
int cnt = 0;
for(int i = 2; i <= 10; i ++){
int xx = x;
string a = ""; //保存当前进制的数
while(xx){
int t = xx % i; //取 i 进制下的当前位的值
a += to_string(t);
xx /= i;
}
string b = a;
reverse(b.begin(), b.end()); //翻转判断
if(a == b) cnt ++;
if(cnt == 2) return 1; //在两个进制下都为回文串满足题意
}
return 0;
}
void solve(){
int n, m; cin >> n >> m;
while(n){
m ++;
if(check(m)){
cout << m << endl;
n --;
}
}
}
int main(){
solve();
return 0;
}