1 solutions
-
0
C++ :
#include<iostream> using namespace std; int a[5000005]={}; bool huiwen(int x[],int len); bool jinzhi(int x[],int v,int j); int main() { int i,j,k,l=0,n,s; cin>>n>>s; for(i=s+1;i<10000;i++){ k=0; for(j=2;j<=10;j++){ if(jinzhi(a,i,j)) { k++; } if(k>=2) { break; } } if(k>=2) { cout<<i<<endl; l++; } if(l==n) break; } return 0; } bool jinzhi(int x[],int v,int j){ int len=0; while(v!=0){ x[len]=v%j; v=v/j; len++; } return huiwen(x,len); } bool huiwen(int x[],int len) { int i; for(i=0;i<len/2;i++){ if(x[i]!=x[len-1-i]) return false; } return true; }Pascal :
var s:string; n,i,j,k,x:longint; f:array [0..300] of longint; procedure zh(x,n:longint); var i,j:longint; begin i:=0; while x<>0 do begin inc(i); f[i]:=x mod n; x:=x div n; end; f[0]:=i; end; function back:boolean; var i,j:longint; begin i:=1;j:=f[0]; repeat if f[i]<>f[j] then exit(false); inc(i); dec(j); until i>f[0] div 2; back:=true; end; begin readln(n,x); s:='0123456789ABCDEFGHIJK'; i:=0; repeat inc(x);k:=0; for j:=2 to 10 do begin zh(x,j); if back then inc(k); if k>=2 then break; end; if k>=2 then begin writeln(x); inc(i); end; until i=n; end.
- 1
Information
- ID
- 18042
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By