IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python小案例1:水仙花数及其自幂数 -> 正文阅读

[Python知识库]Python小案例1:水仙花数及其自幂数

用Python实现,水仙花数

水仙花

水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身。

? 自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。

例如:13 + 53 + 33 = 153。

  1. 因为需要知道该数的各个位置数字,且是在已知三位数的情况下,那么我们就需要提取这个数的百位,十位以及个位

a = 153
# 求百位
high = a // 100
print(high)		# 1
# 求十位
mid1 = a // 10 % 10			# 第一种
mid2 = a % 100 // 10		# 第二种
print(mid1, mid2)	# 5 5
# 求个位
low = a % 10
print(low)		# 3
  1. 需要在100-999之间寻找水仙花数,需要用到循环结构,并且这里明确了循环执行次数,可以使用for in循环

for num in range(100, 1000):
    low = num % 10
    mid = num // 10 % 10
    high = num // 100
    if num == low ** 3 + mid ** 3 + high ** 3:
        print(f'水仙花数有:{num}')

? 水仙花数有:153, 370, 371, 407

延伸

既然3位数有其水仙花数,那么一位数,两位数,四位数……是否有其相应的自幂数呢?

所以我们可以延伸:

一位自幂数:独身数

两位自幂数:没有

三位自幂数:水仙花数

四位自幂数:四叶玫瑰数

五位自幂数:五角星数

六位自幂数:六合数

七位自幂数:北斗七星数

八位自幂数:八仙数

九位自幂数:九九重阳数

十位自幂数:十全十美数

那么我们就可以写出一个函数可以输出各个位置的自幂数,

与水仙花数有关的函数

由于100之前,只有1-9这种独身数,所以选择从100开始遍历循环

def daffodil(num, i):
    """求正整数各个位置的i次方和(自幂数)

    :param num: 正整数()
    :param i: 输入的数为几位数
    :return: 返回整数各个位置的i次幂
    """
    total = 0
    while num > 0:
        total += (num % 10) ** i
        num //= 10
    return total


import time

if __name__ == '__main__':
    start_time = time .time()
    for i in range(100, 10000001):
        if daffodil(i, len(str(i))) == i:
            print(i, end='  ')
    end_time = time.time()
    print()
    print(f'运行时间{end_time - start_time}s')

运行时发现运行时间太长了,所以就只能运行一下8位数以内的整数

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:18:30  更:2021-08-05 17:20:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 10:47:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码