1 solutions

  • 0
    @ 2025-11-5 15:31:19

    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