C++编程问题请高人进啊!

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:16:06
编程求"水仙花数".所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身,例如,153是水仙花数,因为153=1(1的立方3)+5(立方3)+3(立方3)

怎么编呀这道?

//可以算很多位的水仙花数的代码,不只1~999

主要的问题在于怎么求各个位上的数可以如下求
n/100即为百位数
n%10即为个位数
(n-百位数*100)/10即为十位数

#include<iostream>
using namespace std;
int main()
{
for(int i=100;i<1000;i++)
{
a=i/100; // 百位
b=(i-100*a)/10; //十位
c=i%10; //个位
if((a*a*a+b*b*b+c*c*c)==i)cout<<i<<endl;
}
return 0;
}

//可以算很多位的水仙花数的代码,不只1~999

#include<iostream>
#include<cmath>
using namespace std;

long ShuiXianHua(char *str);

int main()
{
char ch[20];
int t1,t2;
for(long i=10; i<3999999; i++)
{
itoa(i,ch,10);
if(ShuiXianHua(ch)==i)
{
cout<<i<<" :是水仙花数"<<endl;
}
}
cout<<t2-t1<<endl;

}

long ShuiXianHua(char *str)
{
long n=0;
long sum=0;
for(int i=0; i<strlen(