答案 0 :(得分:2)
您使用的pow
的实现返回不正确的值。对于10的整数次幂,它应该精确地返回1、10、100、1000等,但是它返回的值略有不同。此外,当它返回略小于整数的值并将该值从浮点转换为int
时,它将被截断,因此int x = pow(10, 3)
的结果可能是999,而不是1000。
请勿使用此pow
求幂十。您可以编写pow
的简单整数替换(当然也可以使用其他名称),也可以重写代码以避免依赖于十进制。 (以1、10、100、1000等进行迭代工作通常会更好—在每个步骤中只需乘以10,而不是进行幂运算即可。)
答案 1 :(得分:2)
pow
函数正在正确返回错误的值。而不是在代码中使用pow
乘以10与总和即可得到输出
remainder = n%10;
reversed = reversed*10 + remainder;
n /= 10;
使用pow
函数获得准确结果的最佳方法是尽可能多地使用double。像大多数将整数用于大型浮点运算的函数一样,其结果往往不准确