美文网首页
随记_求N位数范围内的所有自幂数

随记_求N位数范围内的所有自幂数

作者: DragonFangQy | 来源:发表于2018-04-08 22:59 被阅读0次

今天遇到了一道题,让用Python求100 - 999 之间的水仙花数,出于好奇百度了一下,发现水仙花数只是三位数的自幂数,问题来了,怎么求N位数范围内的所有自幂数?

先看看水仙花数求解过程

水仙花数

通过数学运算求解

通过数学运算取出每一位上的数


# 求水仙花数,范围100 - 999

num_list = []  # 存放自幂数

for x in range(100,1000):

"""

(x//100) ** 3  # 获取百位上的数

(x//10%10) ** 3  # 获取十位上的数

(x%10) ** 3  # 获取个位上的数

"""

if x == (x//100) ** 3 + (x//10%10) ** 3 + (x%10) ** 3 :

num_list.append(x)

print(num_list)

通过字符串求解


num_list = []  # 存放自幂数

for x in range(100,1000):

str_num = str(x)  # 将三位数转化成字符串

sum = 0  # 存放 百位的数幂 + 十位数的幂 + 个位数的幂

for y in str_num:

sum+= int(y) ** 3

if x == sum:

num_list.append(x)

print(num_list)

通过转化字符串可以避免因为运算错误造成的结果错误。

求N位 数的自幂数(N>0)

通过转化字符串的形式,求解N位数范围内的所有自幂数


def compute_self_power(number:int):

"""

计算N位 数的自幂数

:parameter number:str 位数

"""

power_list = []  # 存放自幂数

# 确定范围,number =3 求 所有三位数的自幂数

# ==》自幂数可能出现的范围是 100 - 1000 之间

# ==》 10 ** 3-1 - 10 ** 3 只之间

for x in range(10**(number-1),10**number):

str_num = str(x)  # 转换成字符串,方便取出每一位上的数,避免数学计算取出每一位上的数

sum = 0  # 算放所有位 数的幂运算之后的和

for y in str_num:



    sum+= int(y) ** number  # 计算当前位 数的幂运算

if x == sum:

power_list.append(x)

print(power_list)

def main():

compute_self_power(4)

if __name__ == "__main__":

main()


到此结 DragonFangQy 2018.4.8

相关文章

  • 随记_求N位数范围内的所有自幂数

    今天遇到了一道题,让用Python求100 - 999 之间的水仙花数,出于好奇百度了一下,发现水仙花数只是三位数...

  • python第四次实验(课后)

    1、请输出所有的四叶玫瑰数。四叶玫瑰数是 4 位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次...

  • 四位玫瑰数

    描述 四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。 例如:...

  • js递归(一)——自幂数、水仙花

    自幂数定义自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 +...

  • 数学中一些特殊的数(二)

    这篇文章我们继续讲数学中一些特殊的数。 自幂数 自幂数是指一个n位数,它每个位上数字的n次方之和等于自身。 0,1...

  • 数学知识

    什么是水仙花数 水仙花数只是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数。附:其他位数的自幂数名字一位自幂...

  • 自幂数

    自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 ...

  • python 基础知识第6讲:条件语句控制练习题集合

    练习1.求1000以内所有的水仙花数 需求:求1000以内的所有的水仙花数分析:它的每个位数上的数字的3次幂之和等...

  • 习题13-14

    打印水仙花数·· 水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。例如:15...

  • 2019牛客第七场E题 (Find the median) 思维

    题意:给n个操作,每次和 (1e9范围内)即往数组里面插所有 的所有数,求每次操作后的中位数 题解:区间离散化然后...

网友评论

      本文标题:随记_求N位数范围内的所有自幂数

      本文链接:https://www.haomeiwen.com/subject/vbkvhftx.html