【新手】:大佬帮忙看看我这个代码为啥if语句没有正确判断
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题。 本帖最后由 isdkz 于 2023-5-22 22:48 编辑
你的代码正在对100至999之间的所有数字进行循环,对每个数字进行判断。判断条件是:如果这个三位数等于它的每一位数字的平方和,则打印这个数字。
不过,我注意到你提到了"18讲课后动动手0题",我尝试理解这个参考背景。猜测这个问题可能是寻找100至999之间的三位数,其中该三位数等于每个位上数字的立方和,而不是平方和。这种情况是水仙花数的一个例子。
如果这个猜测是正确的,你的代码应该修改为:
for num in range(100, 999):
a = num // 100
b = (num // 10) % 10
c = num % 10
if num == (a*a*a) + (b*b*b) + (c*c*c): # 立方和,而不是平方和
print(num)
希望这个回答对你有帮助!如果还有其他问题,欢迎继续提问。 你好,根据你提供的代码,我没有发现明显的语法错误。但是需要注意的是,如果运行程序后if语句没有正确判断,可能是因为逻辑上存在问题。
在这个代码中,if语句的作用是判断num是否等于a^2 + b^2 + c^2。如果不符合这个条件,则会跳过当前循环。
建议你检查一下if语句的缩进是否正确,以及分别输出a、b、c和(aa) + (bb) + (c*c)的值,看看是否与你预期一致。这有助于找出程序运行的问题所在。
另外,建议你在代码开头加上注 isdkz 发表于 2023-5-22 22:46
你的代码正在对100至999之间的所有数字进行循环,对每个数字进行判断。判断条件是:如果这个三位数等于它的 ...
不知道为什么我的机器人偷懒了{:10_277:} isdkz 发表于 2023-5-22 22:45
你的代码正在对100至999之间的所有数字进行循环,对每个数字进行判断。判断条件是:如果这个三位数等于它的 ...
谢谢大佬,是水仙花数,我把立方错看成平方了。
页:
[1]