1 solutions
-
0
C++ :
#include<iostream> using namespace std; int a[5005]={}; 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; i=s+1; while(true) { if(l==n) break; 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++; } i++; } 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 i,j,k,s,t,m,n,flag,p:longint; num:array[0..100] of integer; begin {assign(input,'dualpal.in'); reset(input); assign(output,'dualpal.out'); rewrite(output);} readln(n,s); for i:=1 to n do repeat inc(s);t:=0; for j:=2 to 10 do begin fillchar(num,sizeof(num),0); m:=0; p:=s; repeat inc(m); num[m]:=p mod j; p:=p div j; until p=0; flag:=0; for k:=1 to m div 2 do if num[k]<>num[m-k+1] then begin flag:=1;break;end; if flag=0 then inc(t); if t>=2 then break; end; if t>=2 then writeln(s); until t>=2; { close(input); close(output);} end.
- 1
Information
- ID
- 16881
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By