我们取1-200之间的整数,其中有一个很固执在经历了1000次下面的运算还不是一个回数。
运算规则:19不是回数,倒过来就是91,91+19=110,110依然不是回数,那就继续倒过来就是11,110+11=121这就就是回数。
一下算出这个固执的回数:
#include <stdio.h>
int dg(long long int a_1,long long int b_1,int count)
{
long long int c_1,num_c,b_num=0;
c_1=a_1+b_1;
num_c=c_1;
while(num_c!=0){
b_num=b_num*10+num_c%10;
num_c/=10;
}
if(c_1==b_num) return 0;
else{
count++;
if(count==43)
{
printf("%lld %lld\n",c_1,b_num);
return 1;
}
dg(c_1,b_num,count);
}
}
int main(void)
{
long long int a,b,temp,num_c;
int d;
for(a=1;a<200;a++){
b=0;
num_c=a;
while(num_c!=0){
b=b*10+num_c%10;
num_c/=10;
}
if(a==b) continue;
else{
d=dg(a,b,0);
if(d==1) printf("%d\n",a);
}
}
}
因为我算到在196在经历了43/44次的运算就达到了long long int的最大值,所以答案大概就是196。