怎么编程求水仙花数

时间:2025-01-24 12:26:48 游戏攻略

编写水仙花数的程序可以通过多种编程语言实现,这里提供几种常见编程语言的示例代码:

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 narcissistic_numbers;

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 narcissistic_numbers = new ArrayList<>();

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 示例代码