true true 即即 number number 是回文数,为是回文数,为 false false 则否则否 long long num=number; num=number; // //原数原数 long long num_reverse num_reverse =0; =0; // //倒序数倒序数 if(num if(num <0) <0) num=0-num; num=0-num; // //负数也作判断,先转负数也作判断,先转为正数为正数 if(num if(num >=0 >=0 && && num< num< rad rad ) ) return return true; true; // //只有一个数位只有一个数位则直接返回则直接返回 true true ,不必再做,不必再做判断回文数判断回文数??下面的比较下面的比较 while(num while(num ){ ){ // //原数原数 num num 为为0 0则终则终止止 num_reverse num_reverse * *= = rad rad ; ; // //倒序数增位倒序数增位 num_reverse num_reverse += += num%rad num%rad ; ; // //求出当求出当前的最低位并加到新的倒序数上前的最低位并加到新的倒序数上 num=num/ num=num/ rad rad ; ; // //原数原数 num num 去掉去掉最低位最低位} } if(number if(number == == num_reverse num_reverse ) ) // //只作一次只作一次比较,而且只是整数比较比较,而且只是整数比较 return return true; true; else else return return false; false;?再见