1. 程式人生 > >【USACO】雙重回文數

【USACO】雙重回文數

int main(void){
    int n,s,l;
    char a[110];
    while(~scanf("%d%d",&n,&s)){
        for(int i=s+1;;i++){     //在不清楚上限的時候可以用    ";;"
            int sum=0;
            for(int k=2;k<=10;k++){     //用for迴圈實現從2~10的選擇使用
                int c=i,j=0;         //使用一次結束都必須歸0 
                while(c){
                    a[j]=c%k;
                    j++;
                    c/=k;                  
                }
                j--;
                int flag=0;
                for(j,l=0;j>=0&&l<=j;j--,l++){   //雙指標變化比較迴文
                    if(a[j]!=a[l]){
                        flag=1;           
                    }
                }
                if(flag==0){
                    sum++;
                }
                if(sum>=2) break;
            }
            if(sum>=2){
                printf("%d\n",i);
                n--;
            }
            if(n==0) break;
        }
    }
    return 0;
}