笔记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,但是可以换成前者更简单的写法
posted @ 2019-07-30 19:44  ChrisJJ  阅读(120)  评论(0)    收藏  举报
TOP