编写一个Python程序来检测一个三位数是否为水仙花数,并分别输出其百位、十位和个位数字。
时间: 2024-11-14 09:32:14 浏览: 26
水仙花数是一个三位数,它的每个位上的数字的立方之和等于它本身。例如:153 = 1^3 + 5^3 + 3^3。要编写这样一个程序,首先需要明确如何分解一个三位数到它的个位、十位和百位上,然后计算每位数字的立方和,并判断是否等于原数。这里提供一个详细的步骤说明:
参考资源链接:[python输入一个水仙花数(三位数) 输出百位十位个位实例](https://wenku.csdn.net/doc/6412b753be7fbd1778d49e3b?spm=1055.2569.3001.10343)
1. 从用户那里获取一个三位数。
2. 计算百位数字,方法是用原数除以100,然后取整数部分。
3. 计算十位数字,方法是用原数除以10的余数除以10,然后取整数部分。
4. 计算个位数字,方法是用原数对10取余。
5. 分别计算三个位上数字的立方和。
6. 比较立方和与原数是否相等,如果相等则输出结果,并指出该数是水仙花数。
示例代码如下:
```python
def is_narcissistic_number(num):
if num < 100 or num > 999:
return False, '输入错误,请输入一个三位数。'
# 计算百位、十位和个位
hundreds = num // 100
tens = (num // 10) % 10
ones = num % 10
# 计算立方和
sum_of_cubes = hundreds**3 + tens**3 + ones**3
# 判断是否为水仙花数
if sum_of_cubes == num:
return True, '该数是水仙花数,百位是{},十位是{},个位是{}。'.format(hundreds, tens, ones)
else:
return False, '该数不是水仙花数。'
# 测试代码
number = int(input('请输入一个三位数:'))
is_narcissistic, message = is_narcissistic_number(number)
print(message)
```
在这个程序中,`is_narcissistic_number` 函数首先检查输入是否为三位数,然后分别计算出百位、十位和个位上的数字,并计算它们的立方和。最后,函数会返回一个布尔值以及相应的信息,指示输入的数是否为水仙花数。
建议在学习完这个实例后,可以进一步探索《python输入一个水仙花数(三位数) 输出百位十位个位实例》这份资料,它将提供更多关于如何处理数字和程序逻辑的详细内容,帮助你深入理解并应用在更多相关项目中。
参考资源链接:[python输入一个水仙花数(三位数) 输出百位十位个位实例](https://wenku.csdn.net/doc/6412b753be7fbd1778d49e3b?spm=1055.2569.3001.10343)
阅读全文