自定义函数判断水仙花数
时间: 2024-10-17 21:09:10 浏览: 33
自定义函数判断水仙花数是一个常见的编程题目,它是指一个三位数(每位数字都不为0),其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个简单的Python示例,展示如何编写一个函数`is_armstrong_number`来检查一个整数是否是水仙花数:
```python
def is_armstrong_number(num):
# 将数字转换为字符串以便获取每一位
num_str = str(num)
length = len(num_str)
# 计算各个位的立方和
sum_of_cubes = sum(int(digit) ** length for digit in num_str)
# 检查立方和是否等于原数
return sum_of_cubes == num
# 测试函数
print(is_armstrong_number(153)) # 输出: True
print(is_armstrong_number(370)) # 输出: True
print(is_armstrong_number(9474)) # 输出: True
print(is_armstrong_number(123)) # 输出: False
```
相关问题
自定义函数求水仙花数
以下是一个自定义函数,用于判断一个数是否为水仙花数:
```python
def isNarcissisticNumber(num):
# 将数字转换为字符串,方便按位取数
num_str = str(num)
# 计算每个位上的数字的三次幂之和
sum = 0
for i in num_str:
sum += int(i) ** 3
# 判断是否为水仙花数
if sum == num:
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
```
c语言编写程序:将100-999之间的水仙花数输出,判断水仙花数的功能用自定义函数实现。水仙花数是指一个三位数等于各位数字的立方和。
以下是C语言程序代码:
```c
#include <stdio.h>
// 自定义函数判断水仙花数
int isNarcissisticNumber(int num)
{
int sum = 0;
int temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == num;
}
int main()
{
printf("100-999之间的水仙花数有:\n");
for (int i = 100; i <= 999; i++) {
if (isNarcissisticNumber(i)) {
printf("%d\n", i);
}
}
return 0;
}
```
程序中使用了一个自定义函数`isNarcissisticNumber`,用于判断一个整数是否为水仙花数。该函数使用了一个while循环,依次取出数字的个位、十位、百位,计算它们的立方和。如果和等于原数,则返回真,否则返回假。
在主函数中,使用for循环遍历100-999之间的所有整数,依次调用`isNarcissisticNumber`函数进行判断。如果是水仙花数,则输出该数。最终程序输出所有水仙花数。
阅读全文