程序太复杂了,修改如下:long reverse(long number){ long sum; sum=0; while( number!=0 ) { sum=sum*10+number%10; number/=10; } return sum;}你的代码中的问题,估计是pow()的返回值是double,在进行隐式转换成long时,产生了数据丢失!