输入一个整数判断它是否为水仙花数。所谓水仙花数是指这样的一些三位整数各位数字的立方和等于该数本身例如153=13 53 33因此153是水仙花数。示例:输入:153输出:True输入:370输出:True输入:407输出:True输入:123输出:False解题思路:水仙花数的定义是各位数字的立方和等于该数本身因此我们可以按照这个定义来判断一个数是否为水仙花数。具体做法是将这个整数的每一位分离出来
思考:
def isNarcissisticNumber(num): """ 判断一个数是否为水仙花数 :param num: 待判断的数 :return: True或False """ # 获取每一位数字 digit1 = num // 100 digit2 = (num // 10) % 10 digit3 = num % 10 # 计算立方和 sum = digit1 ** 3 + digit2 ** 3 + digit3 ** 3 # 判断是否为水仙花数 if sum == num: return True else: return False
测试
print(isNarcissisticNumber(153)) # True print(isNarcissisticNumber(370)) # True print(isNarcissisticNumber(407)) # True print(isNarcissisticNumber(123)) # False
输出结果:
True
True
True
False
代码说明:
首先定义一个函数isNarcissisticNumber(num),用于判断一个数是否为水仙花数。
接着,我们需要获取这个数的每一位数字,可以使用整除和取余运算来实现。例如,num // 100可以获取num的百位数字,(num // 10) % 10可以获取num的十位数字,num % 10可以获取num的个位数字。
然后,我们需要计算这些数字的立方和,即digit1 ** 3 + digit2 ** 3 + digit3 ** 3。
最后,我们判断立方和是否等于原数,如果相等,则说明这个数是水仙花数,返回True;否则,返回False。
最后,我们对函数进行了测试,输出结果符合预期。
综上所述,我们成功地实现了判断水仙花数的功能。
原文地址: https://www.cveoy.top/t/topic/b5xW 著作权归作者所有。请勿转载和采集!