這次達內報報從原理開始: 跟大家介紹如何用 C# 程式撰寫水仙花數的程式

水仙花數定義
有一個3位數字n如果他的每一位數的三次方加起來恰好等於n
我們就稱它為 :阿姆斯特朗數(水仙花數)或三位超完全數字不變數
水仙花數舉例
153 = 1^3 + 5^3 + 3^3
370 = 3^3 + 7^3 + 0^3
371 = 3^3 + 7^3 + 1^3
407 = 4^3 + 0^3 + 7^3
而5^3 = 5 X 5 X 5 = 125…以此類推
水仙花數程式想法
計算水仙花數的方式是利用迴圈,針對範圍內的全部數值取得每個數值的百、十、個位數值,分別進行三次方運算後加總,並且判斷是否與原數值相等。
EX(舉例:767)

實際程式:(舉例:從100一直到 767)
int a, b, c;
int i = 100;
#假設i從100開始一直計算到767
#由於i會從100 一直計算到767,所以這邊我們選取i = 767
(也就是迴圈最後一個i)當作示範
while (i <= 767){
#767/100取商等於7,並帶入a(為了求此數字百位數)
a = i / 100;
#767除100求餘數取得67
b = i % 100;
#67/10取商為6,並帶入b(為了求此數字十位數)
b = b/10;
#767除10求餘數得7,並帶入c(為了求此數字個位數)
c = i % 10;
#再分別將三個位數都做三次方運算並加總
if (i == (a * a * a + b * b * b + c * c * c))
{
#如果滿足條件則打印該數值為水仙花數
Console.WriteLine(i + "為水仙花數");
}
#從100累計+1直到767
i++;
}
執行結果

Comments