如果将数字的每个位数分别提升到总位数的幂,然后将这些子部分相加,得到的结果等于该数字,则称该数字为阿姆斯特朗数。在这个Python示例中,使用两个不同的例子,给出了找到n位阿姆斯特朗数总和的方法。在示例1中,给出了计算所有3位阿姆斯特朗数总和的方法。在示例2中,用户可以在运行时决定位数。该程序使用4到6位数进行测试。
Example 1 - 找出所有3位数的阿姆斯特朗数之和。
Algorithm
的中文翻译为:算法
步骤 1 - 获取所有三位数的列表。将该列表称为listofallNums。
第 2 步 - 创建一个函数,如果计算出的总和等于数字本身,则返回一个数字的 3 次方所有数字的总和,否则将返回-1。
步骤 3 − 对于listofallNums中的所有数字,调用上述函数,如果值不为-1,则将其添加到名为listofArmStrNums的列表中。
步骤 4 - 验证 ArmStrNums 列表中的所有数字都是 3 位的 armStrong 数字。现在将所有这些 3 位 ArmStrong 数字相加。
第 5 步 - 运行程序,然后检查结果。
Python 文件包含此内容
numOfDigits=3 listofallNums=[] listofArmStrNums=[] listofsumparts=[] def isArmStr(num, powof): sum = 0 TNum = num while TNum > 0: digitt = TNum % 10 sum += digitt ** powof TNum = TNum//10 if sum==num: print('This is an Armstrong number', num) return sum else: return -1 lowerNum=10**(numOfDigits-1) highNum=10**(numOfDigits) for item in range(lowerNum, highNum): listofallNums.append(item) lastelem=len(listofallNums)-1 print("listofallNums contains numbers from ",listofallNums[0], " to ", listofallNums[lastelem]) for itemn in listofallNums: if(isArmStr(itemn, numOfDigits) != -1): listofArmStrNums.append(itemn) print("List of ArmStrong Numbers: ", listofArmStrNums) for elem in listofArmStrNums: listofsumparts=[] summ=0 while elem > 0: digittt = elem % 10 listofsumparts.append(digittt ** numOfDigits) elem = elem//10 print(listofsumparts) total=0 print("adding together: ") for ele in range(0,len(listofsumparts)): total = total + listofsumparts[ele] print(total) SumofallArmStrongnumbers=0 for element in listofArmStrNums: SumofallArmStrongnumbers = SumofallArmStrongnumbers + element print("Sum of all 3 digit ArmStrong numbers is ", SumofallArmStrongnumbers )
查看结果 - 示例 1
要查看结果,请在命令行窗口中运行Python文件。
listofallNums contains numbers from 100 to 999 This is an Armstrong number 153 This is an Armstrong number 370 This is an Armstrong number 371 This is an Armstrong number 407 List of ArmStrong Numbers: [153, 370, 371, 407] [27, 125, 1] adding together: 153 [0, 343, 27] adding together: 370 [1, 343, 27] adding together: 371 [343, 0, 64] adding together: 407 Sum of all 3 digit ArmStrong numbers is 1301
图1:在命令窗口中显示结果。
Example 2:找出所有n位阿姆斯特朗数的和。
Algorithm
的中文翻译为:算法
步骤 1 - 输入数字的值 N 并获取所有 N 位数字的列表。将该列表称为 listofallNums。
第 2 步 - 创建一个函数,如果计算出的总和等于数字本身,则返回 N 次方所有数字的总和,否则将返回-1。
步骤 3 − 对于listofallNums中的所有数字,调用上述函数,如果值不为-1,则将其添加到名为listofArmStrNums的列表中。
步骤 4 − 验证列表listofArmStrNums中的所有数字是否为N位数的阿姆斯特朗数。现在将所有这些N位数的阿姆斯特朗数相加。
第 5 步 - 运行程序,然后检查结果中是否有 4 位数字和 5 位数字。
Python 文件包含此内容
numOfDigits = 5 listofallNums=[] listofArmStrNums=[] listofsumparts=[] def isArmStr(num, powof): sum = 0 TNum = num while TNum > 0: digitt = TNum % 10 sum += digitt ** powof TNum = TNum//10 if sum==num: print('This is an Armstrong number', num) return sum else: return -1 lowerNum=10**(numOfDigits-1) highNum=10**(numOfDigits) for item in range(lowerNum, highNum): listofallNums.append(item) lastelem=len(listofallNums)-1 print("listofallNums contains numbers from ",listofallNums[0], " to ", listofallNums[lastelem]) for itemn in listofallNums: if(isArmStr(itemn, numOfDigits) != -1): listofArmStrNums.append(itemn) print("List of ArmStrong Numbers: ", listofArmStrNums) for elem in listofArmStrNums: listofsumparts=[] summ=0 while elem > 0: digittt = elem % 10 listofsumparts.append(digittt ** numOfDigits) elem = elem//10 print("list of sum subparts: ", listofsumparts) total=0 print("adding together: ") for ele in range(0,len(listofsumparts)): total = total + listofsumparts[ele] print(total) SumofallArmStrongnumbers=0 for element in listofArmStrNums: SumofallArmStrongnumbers = SumofallArmStrongnumbers + element print("Sum of all ", numOfDigits, " digit ArmStrong numbers is ", SumofallArmStrongnumbers )
查看结果 - 示例2
打开cmd窗口并运行python文件以查看结果。
listofallNums contains numbers from 10000 to 99999 This is an Armstrong number 54748 This is an Armstrong number 92727 This is an Armstrong number 93084 List of ArmStrong Numbers: [54748, 92727, 93084] list of sum subparts: [32768, 1024, 16807, 1024, 3125] adding together: 54748 list of sum subparts: [16807, 32, 16807, 32, 59049] adding together: 92727 list of sum subparts: [1024, 32768, 0, 243, 59049] adding together: 93084 Sum of all 5 digit ArmStrong numbers is 240559
图 2:显示总和和 n 位阿姆斯特朗数。
在这篇Python文章中,使用两个不同的例子,给出了找到n位阿姆斯特朗数总和的方法。在示例1中,给出了计算所有3位阿姆斯特朗数之和的方法。在示例2中,用户可以在运行时决定数字的位数。如果用户输入4,则给出所有4位阿姆斯特朗数及其总和。
以上是Python程序获取N个阿姆斯特朗数的总和的详细内容。更多信息请关注PHP中文网其他相关文章!

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

选择Python还是C 取决于项目需求:1)如果需要快速开发、数据处理和原型设计,选择Python;2)如果需要高性能、低延迟和接近硬件的控制,选择C 。

通过每天投入2小时的Python学习,可以有效提升编程技能。1.学习新知识:阅读文档或观看教程。2.实践:编写代码和完成练习。3.复习:巩固所学内容。4.项目实践:应用所学于实际项目中。这样的结构化学习计划能帮助你系统掌握Python并实现职业目标。

在两小时内高效学习Python的方法包括:1.回顾基础知识,确保熟悉Python的安装和基本语法;2.理解Python的核心概念,如变量、列表、函数等;3.通过使用示例掌握基本和高级用法;4.学习常见错误与调试技巧;5.应用性能优化与最佳实践,如使用列表推导式和遵循PEP8风格指南。

Python适合初学者和数据科学,C 适用于系统编程和游戏开发。1.Python简洁易用,适用于数据科学和Web开发。2.C 提供高性能和控制力,适用于游戏开发和系统编程。选择应基于项目需求和个人兴趣。

Python更适合数据科学和快速开发,C 更适合高性能和系统编程。1.Python语法简洁,易于学习,适用于数据处理和科学计算。2.C 语法复杂,但性能优越,常用于游戏开发和系统编程。

每天投入两小时学习Python是可行的。1.学习新知识:用一小时学习新概念,如列表和字典。2.实践和练习:用一小时进行编程练习,如编写小程序。通过合理规划和坚持不懈,你可以在短时间内掌握Python的核心概念。

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)