python寻找1000以内的阿姆斯特朗数

Python 3 学习笔记 - 阿姆斯特朗数 最近开始学习Python 3,在此以前一直没有接触过Python,在校学习的时候用的比较多的还是C#。   由于很长一段时间没有编程了,在学习过程中想要多熟悉一下Python 3的用法,于是想要写几个小例题,比如这里要讲的就是阿姆斯特朗数。   阿姆斯特朗数的定义是:一个n位正整数等于其各位数字的n次方之和,举个例子说1^3 + 5^3 + 3^3 = 153这样的就是阿姆斯特朗数。  那么自己 阅读详情


阿姆斯特朗数定义:如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。

1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。

方法一:计算出位数然后用for循环

核心代码为

length = len(str(num))							# num是输入的数字,类型为int
for ii in range(length):						# length是数字的位数
    num_str = str(num)
    sum_armstrong += int(num_str[ii])**length	  # num_str[]是原数拆分成各个位的数字
    
if sum_armstrong == num:
    return True

完整代码如下:

def is_armstrong(num):
    length = len(str(num))
    sum_armstrong = 0
    for ii in range(length):
        sum_armstrong += int(str(num)[ii])**length

    if sum_armstrong == num:
        return True
    else:
        return False

for num in range(1,1000):
    if is_armstrong(num):
        print(num, end = ' ')

运行效果:

1 2 3 4 5 6 7 8 9 153 370 371 407 
Process finished with exit code 0

方法二:用while循环+判断位数

核心代码:

temp = num									    # 新建一个用于找每一位数字的临时变量
while temp > 0:
    sum_armstrong += (temp%10)**length			  # 取最后一位数字
    temp //= 10									# 除以10,整除复发,相当于直接拿掉最后一位数字
    
if sum_armstrong == num:
    return True

完整代码如下:

def is_armstrong(num):
    temp = num                          
    sum_armstrong = 0
    length = len(str(num))
    while temp > 0:
        sum_armstrong += (temp%10)**length   # 取最后一位数字
        temp //= 10                     
    if sum_armstrong == num:
        return True
    else:
        return False

for num in range(1,1000):
    if is_armstrong(num):
        print(num, end = ' ')

总结:while循环在不确定位数的时候更有效,for循环需要预先计算更多的信息,比如循环次数;而while则不需要,可以创造退出条件,一边计算一边判断。

获取N个阿姆斯特朗数的总和 阿姆斯特朗数(Armstrong Number),也被称为自恋数或加法立方数,是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如,当n为3时,153是一个阿姆斯特朗数,因为1^3 + 5^3 + 3^3 = 153。然后,我们调用get_armstrong_sum函数来计算前N个阿姆斯特朗数的总和,并将结果打印输出。在上面的代码中,我们使用一个while循环来生成阿姆斯特朗数,直到我们收集到了N个阿姆斯特朗数为止。现在,你可以运行这段代码,并输入一个正整数来获取前N个阿姆斯特朗数的总和。 阅读详情

相关推荐

Lumerical FDTD新手教程:5步搞定MMI波导光谱模拟(附避坑指南)

本文提供Lumerical FDTD新手教程,详细讲解5步完成MMI波导光谱模拟的实用方法,包括环境准备、结构建模、光源配置、仿真优化和结果分析。特别针对多模干涉耦合器(MMI)的模拟难点,提供避坑指南和优化策略,帮助光学工程师快速掌握FDTD仿真技术。

kite3的博客 359

Python求阿姆斯特朗数(1000以内)

阿姆斯特朗数:一个n位正整数等于各位数字n次方的和,例如153=1^3+5^3+3^3 以下求阿姆斯特朗数的方法是利用str将数字转化为字符串,然后求出字符串的长度,就是数字的位数。 结果: ...

CoralSeaH的博客 1878

VHDL实战:基于EDA的数字频率计(FREQ)设计与优化

本文详细介绍了使用VHDL语言和EDA工具设计并优化数字频率计(FREQ)的全过程。从核心原理与模块划分入手,深入讲解了时钟分频、测频控制、计数锁存及显示驱动等关键模块的VHDL实现,并提供了从代码编写、功能仿真到综合布局布线的完整EDA实战指南。文章还探讨了测量精度优化、资源权衡及跨时钟域处理等进阶话题,是掌握FPGA数字系统设计的经典案例。

milk8的博客 583

第三十九讲 项目5 求出1000以内阿姆斯特朗数

任务和代码 /* *Copyright (c)2016,优快云学院 | C语言及程序设计初步 *All rights reserved. *文件名称:p39-5.c *作 者:管运煌 *完成日期:2016年6月14日 *求出1000以内阿姆斯特朗数。即abc=a^3+b^3+c^3。 */ #include int main() { int i,m,k,sum=0; for (i

L_d1990的博客 1535

无人机通信安全渗透测试:从信号拦截到GPS欺骗的完整攻防框架

在物联网和智能设备普及的背景下,无线通信安全成为关键基础设施防护的核心环节。其原理在于,通过软件定义无线电等设备对空中的射频信号进行捕获、分析与模拟,从而评估通信协议在加密、认证和防重放等方面的脆弱性。这项技术的价值在于,它能主动发现并修复系统设计缺陷,避免因信号被拦截或欺骗导致设备被劫持、数据泄露等重大安全事件。其应用场景广泛,涵盖消费电子、工业控制及关键基础设施等领域。本文聚焦于无人机这一典型移动物联网终端,深入探讨如何构建一套针对其通信链路的渗透测试方法论,其中涉及信号拦截、协议逆向等关键技术,旨在为

weixin_34128237的博客 390

T型三电平逆变器中点电位平衡详解

T型三电平逆变器(T-type Three-Level Inverter)是一种高效的多电平拓扑,相比传统NPC(Neutral Point Clamped)三电平逆变器,具有更低的开关损耗、更高效率和更简单的结构,尤其适用于中功率应用(如光伏逆变器、风电变换器和工业驱动)。(T-type Three-Level Inverter)中的应用已成为当前中高压功率变换领域(如光伏逆变器、储能PCS、电动汽车充电桩、风电并网和工业驱动)的热门方案。针对 T型逆变器,类似 NPC 的零序注入法适用。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 545

试编程求1000内的所有3位数的阿姆斯特朗数。

试编程求1000内的所有3位数的阿姆斯特朗数。

Allencc5658的博客 848

【花雕学编程】Arduino动手做(249)---ESP32+GC9A01之播放GIF的空战锁定动画

摘要: 本实验基于ESP32开发板,驱动1.28寸圆形IPS彩色TFT显示屏(GC9A01驱动,240×240分辨率),通过SPI接口实现GIF动画播放。利用TFT_eSPI和AnimatedGIF库,成功加载并循环播放预置的科幻风格GIF动画(如HUD界面、X翼战机等)。代码实现了GIF解码、逐帧渲染及动态显示功能,通过串口调试监控运行状态。实验验证了该显示屏在动态图像显示中的流畅性,为嵌入式图形应用提供了实用方案,适用于智能穿戴、交互设备等场景。 关键词: ESP32、GC9A01、圆形TFT、GIF播

雕爷学编程 492

python--阿姆斯特朗数

python–阿姆斯特朗数 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。 代码: #阿姆斯特朗数 def isAmst(n): sum1 = 0 n = str(n) for i in range(len(n)): sum1 += int(n[i])**3 if

yangfoi的博客 930

本地搭建 GitLab 14.1.0版本CI/CD

GitLab 镜像版本 gitlab/gitlab-ce:14.1.0-ce.0 GitLab Runner 镜像版本 gitlab/gitlab-runner:v14.1.0 搭建此套环境是在一台32G的windows电脑上安装的。 使用dokcer安装。 此外还涉及的软件Docker Desktop,WSL 安装GitLab 首先启动 dockcer,打开WSL 打开后 首先定义GitLab的持久化目录 export GITLAB_HOME=/srv/gitlab 然后运行安装GitLab的命令

知无涯 4491

YOLO11涨点优化:loss优化 | 一种新的基于Wasserstein距离的小目标检测评估方法,助力小目标涨点

提出了一种新的基于Wasserstein距离的小目标检测评估方法,通过它们对应的高斯分布计算它们之间的相似性

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1015

Python算法100例-3.3 阿姆斯特朗数

需要把每一位分离出来,然后比较其立方和与原数是否相等。3.算法设计题目给出的数据最多三位,我们可以定义三个变量分别来存储原数的个位、十位和百位,也可以用数组来存储,数组的长度为3。4.确定程序框架。

jsyzliuyu的博客 1091

22、计算智能在自闭症检测与管理中的应用

本文探讨了计算智能在自闭症谱系障碍(ASD)检测与管理中的应用。在检测方面,结合可穿戴设备、传感技术与多模态数据(如眼动追踪、问卷、神经成像等),利用机器学习和深度学习算法提升诊断准确性,并介绍了多种公开数据集及研究方法。在管理方面,通过生理指标(HRV、GSR、呼吸频率)监测情绪状态,结合智能可穿戴设备与支持性应用平台(如LetMeTalk、MITA、Rethink Ed等),实现对ASD患者的实时干预与个性化支持。文章还展示了多模态筛查与管理流程的系统架构,强调未来技术整合与个性化服务的发展方向。

star的博客 91

Python Day10练习题,有关数学规律的运算

Python有关数学练习题的规律运算,转动一下我们的大脑吧!

qq_67780151的博客 464

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

100个python算法超详细讲解:阿姆斯特朗数

1.问题描述 如果一个整数等于其各个数字的立方和,则该数称为“阿姆斯特朗 数”(亦称为自恋性数)。如153=1 3 +5 3 +3 3 就是一个“阿姆斯特朗 数”。试编程求1000以内的所有“阿姆斯特朗数”。 2.问题分析 “阿姆斯特朗数”与3.2节中的“水仙花数”的不同在于,前者并没有 规定几位数,从两者的定义来看,“水仙花数”可以看作是“阿姆斯特朗 数”的一个子集。对于这类问题的算法与“水仙花数”类似,需要把每一 位分离出来,然后比较其立方和与原数是否相等。 3.算法设计 本题求的是1000以内满足条件

Lee达森的博客 2151

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python之阿姆斯特朗数

什么是阿姆斯特朗数 如果一个正整数等于其各个数字的立方和,则这个数被称为阿姆斯特朗数(亦称为自恋性数) 以下是代码实现 @Author: xiaozhi @Date: 2019-08-11 # 给定一个范围(1-10000)以内,计算阿姆斯特朗数 num = input("请输入一个范围:") # if num.isdigit(): num = int(num) for i i...

zZZxiaozhi的博客 1971

阿姆斯特朗数

如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。 for i in range(1, 1001): i_str = str(i) if len(i_str) == 1: ...

zhu6201976的博客 7万+

Python基础练习之一输出10000以内的阿姆斯特朗数

Python基础练习之一输出10000以内的阿姆斯特朗数题目解析解题思路代码展示最后总结练习总结改进思考阿里云时间 题目解析 要解这道题,首先我们要清楚阿姆斯特朗数是什么意思;阿姆斯特朗数是说如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。比如13 + 53 + 33 = 153,14+64+34+44=1634 解题思路 1.利用for循环遍历1-10000 2.根据常识,...

windy1001的专栏 3238

Python之阿姆斯特朗数的两种情况

如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。 (1)下面检测输入的数是否是阿姆斯特朗数。 代码: # 获取用户输入的数字 num = int(input("请输入一个数字: ")) # 初始化变量 sum sum = 0 # 指数,获取位数 n = len(str(num)) # 检测 temp

一只不想做程序员的程序猿的日常摸鱼分享 1671

python判断阿姆斯特朗数_Python 阿姆斯特朗数

Python 阿姆斯特朗数如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。例如1^3 + 5^3 + 3^3 = 153。1000以内的阿姆斯特朗数:1, 2, 3, 4, 5, 6, 7, 8, 9,153, 370, 371, 407。以下代码用于检测用户输入的数字是否为阿姆斯特朗数:#Filename:test.py#Python检测用户输入的数字是否为阿姆斯...

weixin_39938269的博客 1200

Python 打印阿姆斯特朗数

阿姆斯特朗数的介绍与代码使用~

不知名程序猿的博客 1708

python案例分析题_Python实战:阿姆斯特朗数案例分析

题目如下:如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。本章通过两种循环语句对该案例进行分析,首先仅使用for循环,代码如下:for i in range(10000):sums = 0 #初始化sum...

weixin_39987120的博客 786

Python 阿姆斯特朗数

如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。 python实现代码如下: num = input("请输入一个数:") # 计算这个num是几位数 n = len(num) sum = 0 temp = int(num) while temp>0: digit = temp %10 sum

qq_39172055的博客 1097

Python 阿姆斯特朗数-20

如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。 以下代码用于检测用户输入的数字是否为阿姆斯特朗数: # Filename : test.py # author by : https://www.edu.futurelab.tv # Python 检测用户输入的数字是否为阿姆斯特朗数 # 获取用户..

睡前人工智能共享实验室 340

python求阿姆斯特朗数

求动态范围内的阿姆斯特朗数,确定是否为阿姆斯特朗数

m0_72741644的博客 1921
上一篇: python运行出现SyntaxError: 'return' outside function的原因和解决办法
下一篇: python十进制转二进制,八进制和十六进制
刘凯KAI
博客等级 码龄15年 663粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值