#错误做法,坐等大佬解答
sum = 0
n = int(input('请输入位数:'))
for i in range(10**(n-2),10**(n-1)):
k = str(i)
for j in range(0,n):
s = int(k[j]) * n
sum = sum + s
if sum == i:
print(i)
利用for循环控制100-999个数,每个数分解出个位,十位,百位。
- 解法1
for a in range(1,10):
for b in range(0,10):
for c in range(0,10):
s1= a*100+b*10+c
s2= pow(a,3)+pow(b,3)+pow(c,3)
if s1==s2:
print('水仙花:%4d'%s1)
- 解法2
for i in range(100,1000):
s = str(i)
if int(s[0])**3+int(s[1])**3+int(s[2])**3==i:
print('水仙花:',i)
- 解法3
for n in range(100,1000):
m = n
sumValue = 0
while(m>0):
(m,r) = divmod(m, 10)
sumValue += r ** 3
if n == sumValue:
print('水仙花:',n)