python判断一个三位数是否为水仙花数
时间: 2023-05-31 18:21:06 浏览: 216
输入一个三位数,判断它是否是水仙花数
4星 · 用户满意度95%
### 回答1:
水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为1³+5³+3³=153。
以下是Python代码来判断一个三位数是否为水仙花数:
num = int(input("请输入一个三位数:"))
# 获取百位、十位、个位数字
hundreds = num // 100
tens = (num // 10) % 10
ones = num % 10
# 判断是否为水仙花数
if num == hundreds**3 + tens**3 + ones**3:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
### 回答2:
水仙花数是指一个三位数,其各位数字的立方和等于本身。比如,153便是一个水仙花数,因为1的三次方+5的三次方+3的三次方等于153。
要判断一个三位数是否为水仙花数,我们可以通过以下步骤来实现:
1. 首先,将这个三位数拆分成三个数字,分别表示为百位、十位和个位。可以使用数学中的除法和取余运算来实现,如下所示:
```
num = 153
hundreds = num // 100
tens = (num // 10) % 10
ones = num % 10
print(hundreds, tens, ones) # 输出结果为 1 5 3
```
2. 然后,通过计算这三个数字的立方和是否等于原来的数来判断是否为水仙花数,如下所示:
```
num = 153
hundreds = num // 100
tens = (num // 10) % 10
ones = num % 10
if hundreds**3 + tens**3 + ones**3 == num:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
```
整段代码如下:
```
num = 153
hundreds = num // 100
tens = (num // 10) % 10
ones = num % 10
if hundreds**3 + tens**3 + ones**3 == num:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
```
如果要检查多个三位数是否为水仙花数,我们可以使用循环语句和条件语句,如下所示:
```
for num in range(100, 1000):
hundreds = num // 100
tens = (num // 10) % 10
ones = num % 10
if hundreds**3 + tens**3 + ones**3 == num:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
```
上述代码会依次检查100到999之间的所有三位数,并输出其中的水仙花数。如果不想输出每个数的判断结果,可以将print语句改为保存到一个列表中,再一次性输出。
### 回答3:
水仙花数是指一个三位数等于其各个数字的立方和之和,例如153是一个水仙花数,因为1^3+5^3+3^3=1+125+27=153。现在我们来探讨一下如何使用Python来判断一个三位数是否为水仙花数。
首先,我们需要定义一个函数isNarcissisticNumber,该函数传入一个参数num表示一个三位数,函数中需要进行以下操作:
1. 将传入的三位数num拆分为百位数、十位数和个位数,分别用变量a、b、c存储;
2. 计算a的三次方、b的三次方和c的三次方,分别用变量a_cube、b_cube、c_cube存储;
3. 判断num是否等于a_cube+b_cube+c_cube,如果相等,则表明num是一个水仙花数,返回True;否则,num不是水仙花数,返回False。
以下是完整的代码实现:
```python
def isNarcissisticNumber(num):
a = num // 100 # 百位数
b = num // 10 % 10 # 十位数
c = num % 10 # 个位数
a_cube = a ** 3
b_cube = b ** 3
c_cube = c ** 3
if num == a_cube + b_cube + c_cube:
return True
else:
return False
```
我们可以通过调用该函数来判断一个三位数是否为水仙花数,例如:
```python
print(isNarcissisticNumber(153)) # 输出True
print(isNarcissisticNumber(370)) # 输出True
print(isNarcissisticNumber(371)) # 输出True
print(isNarcissisticNumber(407)) # 输出True
print(isNarcissisticNumber(123)) # 输出False
print(isNarcissisticNumber(999)) # 输出False
```
以上就是判断一个三位数是否为水仙花数的Python实现方法。
阅读全文