判断水仙花数的函数实现

简介

水仙花数是指一个三位数,其各个位上数字的立方和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。在这篇文章中,我将向你展示如何用Python编写一个函数来判断一个数是否是水仙花数。

函数实现步骤

下面是整个实现过程的流程图:

journey
    title 判断水仙花数的函数实现步骤
    section 函数实现步骤
        开始 --> 输入三位数
        输入三位数 --> 判断三位数是否合法
        判断三位数是否合法 --> 计算各位数的立方和
        计算各位数的立方和 --> 判断立方和是否等于原数
        判断立方和是否等于原数 --> 输出判断结果
        输出判断结果 --> 结束

在下面我们将逐步介绍每个步骤的具体实现。

步骤一:输入三位数

首先,我们需要接收用户输入的一个三位数。可以使用input()函数来实现:

number = input("请输入一个三位数:")

这段代码会让用户在控制台输入一个三位数,并将输入的内容保存在number变量中。

步骤二:判断三位数是否合法

接下来,我们需要判断用户输入的数是否是一个合法的三位数。合法的三位数是指数值在100到999之间(包含边界)的整数。我们可以使用以下代码来判断:

if len(number) != 3 or not number.isdigit():
    print("输入不合法,请输入一个三位数!")
    exit()

这段代码首先判断用户输入的数字长度是否为3,如果不是,则输出提示信息并退出程序。接着,使用isdigit()函数判断输入的是否为整数,如果不是,则同样输出提示信息并退出程序。

步骤三:计算各位数的立方和

在这一步中,我们需要计算用户输入的三位数的各个位上数字的立方和。我们可以使用以下代码来实现:

digit1 = int(number[0])
digit2 = int(number[1])
digit3 = int(number[2])

sum_of_cubes = digit1 ** 3 + digit2 ** 3 + digit3 ** 3

这段代码首先将输入的三位数的每一位转换为整数类型,并保存在变量digit1digit2digit3中。接着,计算各位数的立方和,并将结果保存在sum_of_cubes变量中。

步骤四:判断立方和是否等于原数

在这一步中,我们需要判断计算得到的立方和是否等于原来的三位数。可以使用以下代码来实现:

if sum_of_cubes == int(number):
    print(number, "是水仙花数!")
else:
    print(number, "不是水仙花数!")

这段代码使用if条件语句来判断立方和是否等于原数。如果等于,输出提示信息表示这个数是水仙花数;否则,输出提示信息表示这个数不是水仙花数。

完整代码

下面是完整的函数实现代码:

def is_armstrong_number(number):
    if len(number) != 3 or not number.isdigit():
        print("输入不合法,请输入一个三位数!")
        exit()

    digit1 = int(number[0])
    digit2 = int(number[1])
    digit3 = int(number[2])

    sum_of_cubes = digit1 ** 3 + digit2 ** 3 + digit3 ** 3

    if sum_of_cubes == int(number):
        print(number, "是水仙花数!")
    else:
        print(number, "不是水仙花数!")

number = input("请输入一个三位数:")
is_armstrong_number(number)

总结

在本文中,我们通过四个步骤展示了如何用Python编写一个函数来判断一个数是否是水