首页 > 精选资讯 > 严选问答 >

求水仙花数编程,c++的

更新时间:发布时间:

问题描述:

求水仙花数编程,c++的,跪求万能的网友,帮我破局!

最佳答案

推荐答案

2025-07-10 06:06:52

求水仙花数编程,c++的】在C++编程中,求解“水仙花数”是一个经典的算法问题。水仙花数(Narcissistic Number)也称为自幂数,是指一个n位数,其各位数字的n次方之和等于该数本身。例如:153、370、371、407等都是三位数的水仙花数。

本文将总结如何用C++编写程序来找出指定范围内的所有水仙花数,并通过表格形式展示结果。

一、水仙花数的定义

- 三位数的水仙花数:每个数字的立方和等于自身。

- 例如:153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153

- 四位数的水仙花数:每个数字的四次方和等于自身。

- 例如:1634 = 1⁴ + 6⁴ + 3⁴ + 4⁴ = 1 + 1296 + 81 + 256 = 1634

二、C++实现思路

1. 输入范围:用户输入起始和结束值(如从100到999)。

2. 遍历每个数:逐个检查是否为水仙花数。

3. 分解各位数字:提取每一位上的数字。

4. 计算各数字的n次方之和:n是该数的位数。

5. 比较是否相等:若相等,则输出该数。

三、C++代码示例

```cpp

include

include

using namespace std;

bool isNarcissistic(int num) {

int original = num;

int sum = 0;

int digits = 0;

// 计算位数

while (num > 0) {

num /= 10;

digits++;

}

num = original;

while (num > 0) {

int digit = num % 10;

sum += pow(digit, digits);

num /= 10;

}

return sum == original;

}

int main() {

int start, end;

cout << "请输入起始值: ";

cin >> start;

cout << "请输入结束值: ";

cin >> end;

cout << "水仙花数如下:" << endl;

for (int i = start; i <= end; i++) {

if (isNarcissistic(i)) {

cout << i << endl;

}

}

return 0;

}

```

四、水仙花数列表(100~999)

数字 是否为水仙花数
153
370
371
407
1634 是(四位数)
8208 是(四位数)
9474 是(四位数)

> 注:以上表格仅列出部分常见水仙花数,实际可运行程序获取完整结果。

五、总结

通过C++编程,我们可以高效地找出指定范围内的所有水仙花数。此过程涉及数字的分解、幂运算以及数值比较,是学习循环、条件判断和数学运算的良好实践。掌握这一算法不仅有助于理解数字特性,也为后续更复杂的数值处理打下基础。

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。