输出所有“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个“水仙花数”,因为153=1^3+5^3+3^3。
#include "stdafx.h"
#include<iostream>
#include<math.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c,d;
for(a=100;a<1000;a++)
{
b=a/100; //百位数字
c=(a/10)-(b*10); //十位数字
d=a%10; //个位数字
if(a==(pow(double(b),3))+(pow(double(c),3)+(pow(double(d),3))))
{
cout<<a<<endl;
}
}
return 0;
}
本题学会求一个三位数字的各个位数:b=a/100;
c=(a/10)-(b*10);
d=a%10;
因为a,b,c,d都定义为整型,所以a/100时得到的只是小数点前的数。