這次來寫寫 UVA10018: Reverse and Add
題意大概是這樣
把一個數字反轉並相加,直到數字是迴文,然後輸出加了幾次跟該迴文,以題目的 sample 來看看好了
所以輸出 4 9339
#include <stdio.h>
int numlen(int n){ //計算該數字位數
int l=1,i;
for(i=0;i<4;i++){
if( (n/10) > 0 ) l++;
else break;
n /= 10;
}
return l;
}
int backtofront(int n){
int out=0,i;
while(n/10>0){
out *= 10;
out += n % 10;
n /= 10;
}
out *= 10;
out += n % 10;
return out;
}
int comparenn(int n){
int i,bn=backtofront(n);
for(i=0;i<=(numlen(n)/2);i++){
if(bn%10!=n%10) return 0;
bn /= 10;
n /= 10;
}
return 1;
}
int main(){
int n,i;
scanf("%d",&n);
for(i=0;i<n;i++){
int num,st=1;
scanf("%d",&num);
num += backtofront(num);
while(comparenn(num)==0){
num += backtofront(num);
st++;
}
printf("%d %d\n",st,num);
}
return 0;
}