寻找11到999之间的数m,他满足m,m*m,m*m*m均为回文数。解释一下例如为什么11可以?主要是symm那不明白。

2024年11月18日 19:30
有2个网友回答
网友(1):

bool symm(unsigned n)
{
 unsigned i=n;
 unsigned m=0;
 while(i>0)//将n各个  位上的数字分解,求“对称数”(回文数

) ,假设i=n=1234 
 {
  m=m*10+i%10;//先取个位,然后十位,... 1234%10=4 ,123%10=3,... 
  i/=10;//i=1234/10=123,...最后m=(((0*10+4)*10+3)*10+2)*10+1 
  //四次循环,i=1234,123,12,1最后i=1/10=0(跳出循环) 
  //最终结果m=4321,将n翻过来 
 }
 return m==n; //m==n回文数(正读,倒读数相等,11,1,121,1221等)返回1,m!=n返回0 
}

网友(2):

回文数就是从中间分开,两边的数是对称相等的,所以11符号标准啊