笔记3
记录使用python实现水仙花数的一个坑点
纯属闲的用python再来写个
0x00 实现一行输入两个数
我想把取数的范围控制在[m,n],然后将他们都在一行直接输入(空格为界)这时候就需要使用
m, n = input.split()
input方法得到输入的数之后,其实这时候的m,n还是一个整体的字符串例如我要输入100,200,那么一开始得到的是"100 200",然后再结合split()方法切分,以空格切分就可以了,然后将得到的m,n转换为int型就可以了
0x01一个坑
我一开始的代码中的循环体是这样的
for i in range(m, n+1):
a = i/100
b = i % 100/10
c = i % 10
if a*a*a+b*b*b+c*c*c == i:
print(i, end=" ")
count += 1
但是却始终无法显示结果,然后拍脑一想,他喵的“/”不是整除,这样的话加在一起当然不等于 i ,所以,用整除呗“//”
m, n = input().split()
m = int(m)
n = int(n)
count = 0 # 计量是否有水仙花数
# (m,n)
if 100 <= m <= n <= 999:
for i in range(m, n+1):
a = i//100
b = i % 100//10
c = i % 10
if a*a*a+b*b*b+c*c*c == i:
print(i, end=" ")
count += 1
if count == 0:
print("no")
else:
print("error domain")
if 100 <= m <= n <= 999:本来写的是
if m>=100 and n<=999 and m<=n,但是可以换成前者更简单的写法

浙公网安备 33010602011771号