各位帮我做个题目,谢谢啦!

来源:百度知道 编辑:UC知道 时间:2024/06/14 02:38:59
打印出100~999之间的所有“水仙花数”。所谓“水仙花数”,是指一个3位数,其各位数字立方和等于该数本身,例如:153是一个“水仙花数”,因为153=1^3+5^3+3^3.
(用代码表示,谢谢各位咯!)

水仙花数是指一个n(>=3)位数字的数,它等于每个数字的n次幂之和。
在1000以内的水仙花数共有4个,分别为:153、370、371、407
四位的水仙花数1634,8208,9474

#include <iostream>
using namespace std;
bool When_data (int);
int main()
{
cout << "所有的水仙花数如下:"
<< endl
<< "========================"
<< endl;
for (int n =100; n < 1000; n++) //遍历所有三位数
{
if (When_data (n))
cout << n
<< '\t';
}
//int n; //次两行代码为查看结果而设 ////::------ 为什么喜欢这样...
//cin >> n;
return 0;
}
//=====================================================
bool When_data (int data_n) //判断是否是水仙花数
{
int data[3]; ////::------ data[3]
int Sun_data = 0;
data[0] = data_n % 10; //将三位数字的各位数字分离
data[1] = (data_n % 100 ) / 10;
data[2] = data_n / 100;
for (int n = 0; n < 3; n++) //计算三位数字的立方和
{
int Pro = 1;
for (int m = 0