|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
给的答案算法没看懂……
答案是这么写的:
- for i in range(100, 1000):
- sum = 0
- temp = i
- while temp:
- sum = sum + (temp%10) ** 3
- temp //= 10 # 注意这里要使用地板除哦~
- if sum == i:
- print(i)
复制代码
自己是这么写的:
- for a in range(1,10):
- for b in range(0,10):
- for c in range(0,10):
- num1 = (a*100+b*10+c*1)
- num2 = (a**3+b**3+c**3)
- if num1 == num2:
- print(num1)
复制代码
求解我这种写法可以吗?还有谁能帮我解释下小甲鱼给的答案到底是怎么算出来的……
你的当然可以,甲鱼的是直接针对目标值i
for i in range(100, 1000): 100到1000里找
sum = 0 每次初始求和
temp = i temp替代i,因为temp要变化
while temp: 当temp为1循环
sum = sum + (temp%10) ** 3 sum每次加上temp对10的余数的立方
temp //= 10 # 注意这里要使用地板除哦~ temp每次循环地板除10,相当于把temp的个十百位立方和给sum
if sum == i: 底下你就懂了
print(i)
|
|