鱼C论坛

 找回密码
 立即注册
查看: 1327|回复: 4

[已解决]【新手】:大佬帮忙看看我这个代码为啥if语句没有正确判断

[复制链接]
发表于 2023-5-22 22:45:12 | 显示全部楼层 |阅读模式
10鱼币
for num in range(100, 999):
    a = num // 100
    b = (num // 10) % 10
    c = num % 10
    if num == (a*a) + (b*b) + (c*c):
        print(num)

18讲课后动动手0题。
最佳答案
2023-5-22 22:45:13
本帖最后由 isdkz 于 2023-5-22 22:48 编辑

你的代码正在对100至999之间的所有数字进行循环,对每个数字进行判断。判断条件是:如果这个三位数等于它的每一位数字的平方和,则打印这个数字。

不过,我注意到你提到了"18讲课后动动手0题",我尝试理解这个参考背景。猜测这个问题可能是寻找100至999之间的三位数,其中该三位数等于每个位上数字的立方和,而不是平方和。这种情况是水仙花数的一个例子。

如果这个猜测是正确的,你的代码应该修改为:

  1. for num in range(100, 999):
  2.     a = num // 100
  3.     b = (num // 10) % 10
  4.     c = num % 10
  5.     if num == (a*a*a) + (b*b*b) + (c*c*c): # 立方和,而不是平方和
  6.         print(num)
复制代码


希望这个回答对你有帮助!如果还有其他问题,欢迎继续提问。

最佳答案

查看完整内容

你的代码正在对100至999之间的所有数字进行循环,对每个数字进行判断。判断条件是:如果这个三位数等于它的每一位数字的平方和,则打印这个数字。 不过,我注意到你提到了"18讲课后动动手0题",我尝试理解这个参考背景。猜测这个问题可能是寻找100至999之间的三位数,其中该三位数等于每个位上数字的立方和,而不是平方和。这种情况是水仙花数的一个例子。 如果这个猜测是正确的,你的代码应该修改为: 希望这个回答 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-22 22:45:13 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2023-5-22 22:48 编辑

你的代码正在对100至999之间的所有数字进行循环,对每个数字进行判断。判断条件是:如果这个三位数等于它的每一位数字的平方和,则打印这个数字。

不过,我注意到你提到了"18讲课后动动手0题",我尝试理解这个参考背景。猜测这个问题可能是寻找100至999之间的三位数,其中该三位数等于每个位上数字的立方和,而不是平方和。这种情况是水仙花数的一个例子。

如果这个猜测是正确的,你的代码应该修改为:

  1. for num in range(100, 999):
  2.     a = num // 100
  3.     b = (num // 10) % 10
  4.     c = num % 10
  5.     if num == (a*a*a) + (b*b*b) + (c*c*c): # 立方和,而不是平方和
  6.         print(num)
复制代码


希望这个回答对你有帮助!如果还有其他问题,欢迎继续提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-22 22:59:16 | 显示全部楼层
你好,根据你提供的代码,我没有发现明显的语法错误。但是需要注意的是,如果运行程序后if语句没有正确判断,可能是因为逻辑上存在问题。
在这个代码中,if语句的作用是判断num是否等于a^2 + b^2 + c^2。如果不符合这个条件,则会跳过当前循环。
建议你检查一下if语句的缩进是否正确,以及分别输出a、b、c和(aa) + (bb) + (c*c)的值,看看是否与你预期一致。这有助于找出程序运行的问题所在。
另外,建议你在代码开头加上注
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-22 22:59:56 | 显示全部楼层
isdkz 发表于 2023-5-22 22:46
你的代码正在对100至999之间的所有数字进行循环,对每个数字进行判断。判断条件是:如果这个三位数等于它的 ...

不知道为什么我的机器人偷懒了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-5-22 23:38:21 | 显示全部楼层
isdkz 发表于 2023-5-22 22:45
你的代码正在对100至999之间的所有数字进行循环,对每个数字进行判断。判断条件是:如果这个三位数等于它的 ...

谢谢大佬,是水仙花数,我把立方错看成平方了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 01:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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