所謂水仙花數,是指一個n位數(n>=3),它的每個位上的數字的n次冪之和等於它本身,例如:153=13+53+33。首先,我們應該解決的關鍵問題是,怎么通過C#語言判斷一個數是不是水仙花數?既然水仙花數的定義是每個位上的數字的n次冪之和等於它本身,那么我們需要先分別得到一個數每個位上的數字,然后判斷每個位上的數字的n次冪之和是否等於等於它本身。取出百位的數字可以使用 int a=i/100%10;(其中變量a存儲百位數字。先將變量i中的值除以100,因為被除數和除數都是int類型的值,所以得到值的是百位及以上位的值,因為現在我們只需要得到百位的值,所以可以將其求余,就能得到百位的值,取出其他位的值可以采用類似思路。),取出十位的數字可以使用 int b=i/10%10;(其中變量b存儲十位數字)。取出個位的數字可以使用 int c=i%10;(其中變量c存儲個位數字)。程序的具體思路是,先使用一個for循環使變量i從100開始自增到999,當i大於999時,退出for循環,在for循環內使用上面介紹的方法得到得到各個位上的值,再使用一個if判斷語句來判斷其是否為水仙花數,如果是即輸出該數。具體程序可參考下文代碼:
for (int i = 100;i < 1000; i++)
{
int a=i/100%10;
int b=i/10%10;
int c=i%10;
if (i == a * a * a + b * b * b + c * c * c)
{
Console.WriteLine(i);
}
}
Console.ReadLine();
實現結果演示:
(最后,感謝你看到這里,新人第一次發博,如果有什么不對的地方,請大神海涵!)