自学编程python两种方法算出阿姆斯特朗数
程序员文章站
2022-06-17 15:20:20
阿姆斯特朗数,一个n位数的各位n次方只和等于这个数本身,判断是不是阿姆斯特朗数。方法1 一个数除以10取余,就是这个数的个位,再把这个数除以10取整,继续除以10取余,就是这个数百位的,依次遍历,可以得到每位的数。def amstl():sumnum = 0number = int(input(“请输入数字:”))temp = numberwhile temp > 0: n = len(str(number)) gewei = temp % 10 sumnum +=...
我之前没有任何编程的基础,python是我在上下班的空余时间学习的,也是希望在自己本职工作中能够多一个技能,能够用在工作和生活中,帮助到自己。
阿姆斯特朗数,一个n位数的各位n次方之和等于这个数本身。
方法1 一个数除以10取余,就是这个数的个位,再把这个数除以10取整,继续除以10取余,就是这个数十位的,依次遍历,可以得到这个数的每一位数字。
def amstl():
sumnum = 0
number = int(input("请输入数字:"))
temp = number
while temp > 0:
n = len(str(number))
gewei = temp % 10
sumnum += gewei ** n
temp //= 10
if sumnum == number:
print("这个数是阿姆斯特朗数")
else:
print("这个数不是阿姆斯特朗数")
amstl()
方法2 把这个数当做字符串来处理,虽然没有任何算法可言,但是代码少。
def str_amstl():
str1 = input("请输入一个数用于判断:")
n = len(str1)
sumstr = 0
for item in str1:
sumstr += int(item) ** n
if sumstr == int(str1):
print(f"{str1}是阿姆斯特朗数")
else:
print(f"{str1}是不阿姆斯特朗数")
str_amstl()
给定一个范围,求这个范围内的阿姆斯特朗数:
def fw_asstl(m, n):
"""求一个范围之内的阿姆斯特朗数,m为起始,n为结束,n>m>1"""
numberlist = []
for item in range(m, n+1):
sumnumber = 0
number = item
while number > 0:
n = len(str(item))
gewei = number % 10
sumnumber += gewei ** n
number //= 10
if item == sumnumber:
numberlist.append(item)
print(numberlist)
本文地址:https://blog.csdn.net/huafeio/article/details/111086769