#判断任意数是否为水仙花数或类似于水仙花数,水仙花数是指该数的每一位的三次方之和等于原数,例如153是个水仙花数,153=1^3+5^3+3^3

#思路:将输入的数首先存为字符形式,利用list()函数对其类型进行强转,
#   遍历其中的每一位与0~9进行比较,若存在不包含在其中的部分,则水仙花数不合法,最后利用水仙花数的特性判断该数是否为水仙花数

##基础准备:
#list的类型强转:利用list()函数将数据类型强转为list类型
#eval()类型强转,将数据类型强转为数字类型

num=input()
num_list=list(num)
for i in num_list:
    if i not in ["1","2","3","4","5","6","7","8","9","0"]:
        print("水仙花数不合法")
        exit(0)
temp=0#定义临时变量用于存储分割后的数据的各个位的和
for i in num_list:
    temp+=eval(i)**3
if temp==eval(num):
    print(num,"是水仙花数")
else:
    print(num,"不是水仙花数")
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐