#include<bits/stdc++.h> using namespace std; int n,s,f=0; const int N=1e7; char ans[N]; int p=0; void jinzhi(int a,int i){ //利用栈实现进制转换,将转换到的数字存在ans数组中 if(a>0) { jinzhi(a/i,i); int t=a%i; if(t>9) ans[p++] ='A'+t-10; else ans[p++] ='0'+t; ans[p]=0; } } bool huiwen(){ //回文数判断 int i=0; int j=strlen(ans)-1; int l=j; //7447 4/2=2 for(;i<j;i++,j--) { if(ans[i]!=ans[j]) //回文 return false; if((i<l/2 && ans[i]>ans[i+1])) //递增 return false; } return true; } int main(){ cin>>n>>s; for(int i=2;i<=n;i++) { strcpy(ans,""); //初始化 p=0;//初始化 jinzhi(s,i); if(huiwen()) {printf("%d %s\n",i,ans);f=1;} } if(!f) printf("guomienasai"); }
全部评论
(3) 回帖