【USACO】雙重回文數
阿新 • • 發佈:2019-01-01
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;
}
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;
}