【问题标题】:Problems with palindrome in c [closed]c中的回文问题[关闭]
【发布时间】:2019-01-10 02:51:18
【问题描述】:

【问题讨论】:

  • 请编辑您的问题以提供您的代码,而不仅仅是提供代码图像的链接。
  • 阅读pow 的文档并注意没有整数版本。

标签: c gcc


【解决方案1】:

pow 函数返回的值不正确。而不是在代码中使用 pow 将 10 与总和相乘得到输出

remainder = n%10;
reversed = reversed*10 + remainder;
n /= 10;

使用pow 函数获得准确结果的最佳方法是尽可能多地使用双精度数。像大多数使用整数进行大型浮点运算的函数一样,往往会得到不准确的结果

【讨论】:

    【解决方案2】:

    您正在使用的pow 的实现返回不正确的值。对于 10 的整数幂,它应该准确地返回 1、10、100、1000 等等,但它返回的值略有不同。此外,当它返回一个略低于整数的值并且该值从浮点转换为int 时,它会被截断,因此int x = pow(10, 3) 的结果可能是 999 而不是 1000。

    不要使用 pow 对十求幂。您可以为pow 编写一个简单的整数替换(当然可以使用另一个名称),或者您可以重写代码以避免依赖于十的幂运算。 (使用 1、10、100、1000 等进行迭代工作通常会更好 — 只需在每一步乘以 1,而不是求幂来计算幂。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-29
      • 2016-10-16
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      相关资源
      最近更新 更多