鱼C论坛

 找回密码
 立即注册
查看: 2930|回复: 2

[已解决]求助大佬们,程序没有报错但是运行不出来是什么原因?程序如下

[复制链接]
发表于 2023-7-27 16:07:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
for i in range(100,999):
    x = int(i * 0.01)
    y = i*0.1 - (int(i*0.1))
    z = i % 10
    if x**3 + y**3 + z**3 == i:
        print(i)
   
最佳答案
2023-7-27 16:08:12
你好!根据您提供的程序,我注意到您想找出满足以下条件的三位数:

1. 三位数的百位数的立方 + 十位数的立方 + 个位数的立方 等于 该三位数本身。

您的程序看起来基本上是正确的,但可能存在一个小问题,导致没有输出结果。问题在于变量y的计算可能会导致小数部分不精确,从而影响最终的判断条件。在Python中,浮点数的精度有时会受到限制,因此我们需要避免使用浮点数的精确比较。

为了解决这个问题,我建议您对计算y的部分进行修改,使用整数计算而不是浮点数计算。具体来说,您可以将y的计算改成以下方式:

  1. y = i // 10 - (i // 100 * 10)
复制代码


这样可以确保y是一个整数,避免了浮点数的精度问题。修改后的程序如下所示:

  1. for i in range(100, 999):
  2.     x = i // 100
  3.     y = i // 10 - (i // 100 * 10)
  4.     z = i % 10
  5.     if x [color=Red] 3 + y [/color] 3 + z ** 3 == i:
  6.         print(i)
复制代码


现在,重新运行这个修改后的程序,它应该能够正确地找出满足条件的三位数并输出。希望这能解决您的问题!如果您有任何其他疑问,请随时问我。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-26 05:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表