从零开始学python | 如何在Python中最好地实现Armstrong数?

举报
Yuchuan 发表于 2021/03/17 16:05:08 2021/03/17
【摘要】 我们从顾客那里得到的最普遍的要求之一就是如何用Python编写Armstrong数的程序。尽管这对于熟悉这种语言的人来说似乎很容易,但是仍有很多技术可能会错过。因此,在本文中,我们将更多地讨论Python中的Armstrong数以及如何在Python中为该代码编写程序。

Python很容易成为目前最流行和可识别的编码平台之一。凭借其强大的功能和多功能性,从业余爱好者到专业人士,每个人都将Python用作编程的主要选择语言。话虽这么说,我们从顾客那里得到的最普遍的要求之一就是如何用Python编写Armstrong数的程序。尽管这对于熟悉这种语言的人来说似乎很容易,但是仍有很多技术可能会错过。因此,在本文中,我们将更多地讨论Python中的Armstrong数以及如何在Python中为该代码编写程序。

本文将介绍以下指针,

Python中的阿姆斯特朗数

什么是阿姆斯特朗号?

既然您知道阿姆斯壮数字是什么,让我们探索如何用Python编写同样的程序。 

用最简单的术语来说,阿姆斯特朗数字可以定义为整数,其数字的立方之和等于数字本身。阿姆斯特朗数的示例可以是371,在计算时可以将其分解为3 ** 3 + 7 ** 3 + 1 ** 3 = 371。

继续阅读有关Python中的Armstrong Number的文章,

Python中的Armstrong编号程序

为了用Python编写Armstrong数字程序,您首先需要了解Python if…else语句以及Python while Loop。 

  1. Python if…else语句:Python if…else语句可以简单地定义为一段代码,仅在满足特定条件时才需要生成结果时使用。例如,如果a等于b,则打印c。 
  2. Python while循环:另一方面,Python while循环是一段代码,当需要重复运行某个代码块直到某个条件为真时使用。例如,如果a等于be,则打印c 10次。 

既然您已经知道Python if…else语句以及Python,而Loop确实使我们了解了Python中用于Armstrong编号的程序的外观。 

# Python program to check if the number provided by the user is an Armstrong number or not
# take input from the user
num = int(input("Enter a number: "))
# initialize sum
sum = 0
# find the sum of the cube of each digit
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
# display the result
if num == sum:
print(num,"is an Armstrong number")
else:
print(num,"is not an Armstrong number")

为了更好地探索上面的示例,让我们接受两个输入。 

出现提示时,输入1: 663。 

结果: 663不是阿姆斯壮数字。 

出现提示时,输入2: 407。 

结果: 407是一个阿姆斯特朗数。 

在以上两种输入中,我们可以选择要求用户输入他们选择的数字,然后分析该数字是否为阿姆斯特朗数字。 

为了分析某个输入是否为阿姆斯特朗数,我们需要将输入分解为单个数字,计算每个数字的立方,然后将它们全部加在一起。为了在编码的背景下实现这一点,我们使用了模运算符(%运算符)。在上面的示例中,数字除以10后的余数是该数字的最后一位。我们使用指数运算符获取多维数据集。

在最后一步,我们将我们的结果与输入的原始数字的结果进行比较,并确定是否为阿姆斯特朗数字。 

继续阅读有关Python中的Armstrong Number的文章,

Program to check Armstrong number of n digits
num = 1634
# Changed num variable to string,
# and calculated the length (number of digits)
order = len(str(num))
# initialize sum
sum = 0
# find the sum of the cube of each digit
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** order
temp //= 10
# display the result
if num == sum:
print(num,"is an Armstrong number")
else:
print(num,"is not an Armstrong number")

在上面的程序中,我们已经将输入共享为1634。因此,程序现在将检查1634是否为Armstrong号码。您可能已经猜到了,数字1634不是阿姆斯特朗数字,因​​此上面的程序打印出来,数字1634不是阿姆斯特朗数字。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。