呵呵,可能这个问题比较简单。但开始刚刚接触,虽然这个问题很经典,但我想了比较久才把它弄出来。因为在pow函数那里卡住了,但后来慢慢看书,终于把它给弄出来啦,后来在网上找了找解法,发现和我的大同小异,还是想想是否有更简单的解法吧。

#include<iostream.h>

#include<math.h>

void main()

{

  int m,a,b,c,tmp;

  cout<<"The Narcissistic Number is "<<endl;

  for(m=100;m<=999;m++)

   {a=m/100;                 

    b=(m%100)/10;

    c=m%10;               //把数分成三位,存在不同的地方

    tmp=pow(a,3)+pow(b,3)+pow(c,3);        //求出各位数的三次方之和

   if(tmp==m)

   cout<<m<<endl; //输出该水仙花数

       

    }