编写水仙花数的程序可以通过多种编程语言实现,这里提供几种常见编程语言的示例代码:
Python 示例代码
```python
def is_narcissistic(num):
将数字转换为字符串,以便逐位处理
num_str = str(num)
计算每位数字的立方和
sum_of_cubes = sum(int(digit) len(num_str) for digit in num_str)
判断立方和是否等于原数字
return sum_of_cubes == num
遍历所有三位数,找出水仙花数
narcissistic_numbers = [num for num in range(100, 1000) if is_narcissistic(num)]
输出结果
print("水仙花数有 {} 个:".format(len(narcissistic_numbers)))
for num in narcissistic_numbers:
print(num)
```
C++ 示例代码
```cpp
include include include bool isNarcissistic(int num) { int originalNum = num; int sum = 0; int n = 0; while (originalNum != 0) { originalNum /= 10; ++n; } originalNum = num; while (originalNum != 0) { int remainder = originalNum % 10; sum += pow(remainder, n); originalNum /= 10; } return sum == num; } int main() { std::vector for (int i = 100; i <= 999; i++) { if (isNarcissistic(i)) { narcissistic_numbers.push_back(i); } } std::cout << "水仙花数有 " << narcissistic_numbers.size() << " 个:" << std::endl; for (int num : narcissistic_numbers) { std::cout << num << " "; } std::cout << std::endl; return 0; } ``` Java 示例代码 ```java import java.util.ArrayList; import java.util.List; public class NarcissisticNumbers { public static boolean isNarcissistic(int num) { int originalNum = num; int sum = 0; int n = 0; while (originalNum != 0) { originalNum /= 10; ++n; } originalNum = num; while (originalNum != 0) { int remainder = originalNum % 10; sum += Math.pow(remainder, n); originalNum /= 10; } return sum == num; } public static void main(String[] args) { List for (int i = 100; i <= 999; i++) { if (isNarcissistic(i)) { narcissistic_numbers.add(i); } } System.out.println("水仙花数有 " + narcissistic_numbers.size() + " 个:"); for (int num : narcissistic_numbers) { System.out.print(num + " "); } } } ``` JavaScript 示例代码