呵呵,可能這個問題比較簡單。但開始剛剛接觸,雖然這個問題很經典,但我想了比較久才把它弄出來。因為在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; //輸出該水仙花數

       

    }