关于水仙花数的问题
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 n in range(100,1000):
i =n // 100
j =n//10%10
k =n%10
if n == (i**3)+(j**3)+(k**3):
print(n)
我也是初学编程,我想向大家取取经该如何培养这样思考问题的角度,还有像我这样写不足的地方在哪里 1.能看懂就行
2.你的写法没啥问题
3.代码量上去以后,就有这种善用条件的巧方法了 如果固定3位数,你这样些没有问题,如果题目变了,变成了4位数,5位数,用前面的方法就基本不用修改程序,可以说通用性更好。 逃兵 发表于 2021-8-5 15:00
1.能看懂就行
2.你的写法没啥问题
谢谢您 冬雪雪冬 发表于 2021-8-5 15:03
如果固定3位数,你这样些没有问题,如果题目变了,变成了4位数,5位数,用前面的方法就基本不用修改程序, ...
感谢感谢
页:
[1]