算法描述:

打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数。(153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 )

输出格式:

打印所有水仙花数,两数中间用空格隔开。

程序代码:

#include<stdio.h>
#include<cmath>
int main(){
for(int i=100;i<1000;i++) {
int a,b,c;
a=i%10;//求出个位
b=i/10%10;//求出十位
c=i/100; //求出百位
if(pow(a,3)+pow(b,3)+pow(c,3)==i){
printf("%d ",i);
}
}
return 0;
}

运行结果:

153 370 371 407

补充:

pow()函数是存放在math库中用于求次幂(次方)的函数,pow(x,y)表示x的y次方。其语法原型如下:

double pow(double x,double y);

其返回值和形参都是double类型。例如,求2的3次方如下:

程序代码:

#include<stdio.h>
#include<cmath>
int main(){
int x=2,y=3;
printf("%lf\n",pow(x,y));
return 0;
}

运行结果:

8.000000

形参可以是整数,但返回值必定是double类型。