栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 输入一个数,判断是不是水仙花数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 输入一个数,判断是不是水仙花数

题目要求

输入一个整数,判断它是不是水仙花数

水仙花数是一个三位整数,其每位数字的立方和等于其本身,
例如,153 是一个水仙花数,153 = 1×1×1 + 5×5×5 + 3×3×3

输入格式:
输入一个整数

输出格式:
如果该数是水仙花数,则输出:“该数是水仙花数”
如果该数不是水仙花数,则输出:“该数不是水仙花数”
如果该数不是一个三位数,输出:“输入错误,不是一个三位数”

方法1

注意点:

  • 一开始将 n 转成 int 可以避免输入数字开头带 0,如 “000”
  • 利用 len(str(n)) == 3 判断 n 只能是三位数
n = int(input())
bai = n // 100  # python里注意是//(向下取整)
shi = n // 10 % 10
ge = n % 10
total = bai ** 3 + shi ** 3 + ge ** 3
if len(str(n)) != 3:  # 利用str()函数转换成字符串
    print("输入错误,不是一个三位数")
elif n == total:
    print("该数是水仙花数")
else:
    print("该数不是水仙花数")
方法2
s = input()
if s[0] != '0' and len(s) == 3:
    result = int(s[0])**3 + int(s[1])**3 + int(s[2])**3
    if int(s) == result:
        print("该数是水仙花数")
    else:
        print("该数不是水仙花数")
else:
    print("输入错误,不是一个三位数")

该方法的巧妙之处在于利用字符串可以直接取各个位转成 int 运算就行,但需要附加条件 s[0] != ‘0’ 避免输入数字开头带 0,如 “000”

学习时遇到的问题,分享一下自己的解法,仅供参考,如有问题欢迎指教。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983536.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号