【发布时间】:2019-01-10 02:51:18
【问题描述】:
【问题讨论】:
-
请编辑您的问题以提供您的代码,而不仅仅是提供代码图像的链接。
-
阅读
pow的文档并注意没有整数版本。
【问题讨论】:
pow 的文档并注意没有整数版本。
pow 函数返回的值不正确。而不是在代码中使用 pow 将 10 与总和相乘得到输出
remainder = n%10;
reversed = reversed*10 + remainder;
n /= 10;
使用pow 函数获得准确结果的最佳方法是尽可能多地使用双精度数。像大多数使用整数进行大型浮点运算的函数一样,往往会得到不准确的结果
【讨论】:
您正在使用的pow 的实现返回不正确的值。对于 10 的整数幂,它应该准确地返回 1、10、100、1000 等等,但它返回的值略有不同。此外,当它返回一个略低于整数的值并且该值从浮点转换为int 时,它会被截断,因此int x = pow(10, 3) 的结果可能是 999 而不是 1000。
不要使用 pow 对十求幂。您可以为pow 编写一个简单的整数替换(当然可以使用另一个名称),或者您可以重写代码以避免依赖于十的幂运算。 (使用 1、10、100、1000 等进行迭代工作通常会更好 — 只需在每一步乘以 1,而不是求幂来计算幂。)
【讨论】: