【基礎】水仙花數

寫在前面的話
1 思路:理解題目,擬定方案,執行,回顧
2 實現:兩種實現方法;
3 回顧:求同存異;比較優缺點;

零、題目

輸出100-999之間,所有的“水仙花數”。所謂的“水仙花數”是指一個三位數其各位數字的立方和等於該數本身,例如153是“水仙花數”,因爲:153 = 13 + 53 + 33

一、理解題目

1.1 無輸入值;
1.2 輸出值:水仙花數x, x=[100,999];
1.3 條件:ABC; A100 + B10 +C = A3 + B3 + C3;

二、擬定方法

2.1 遍歷水仙花數可能範圍內的所有數
i=[1,9]; j=[0,9]; k=[0,9];
2.2 當符合條件的時候,進行輸出;

三、code

#include<stdio.h>

int main()
{
    int sum;
    int i, j, k;
    sum = 0;
    for(i = 1; i <= 9; i++)
    {
        for(j = 0; j <= 9; j++)
        {
            for(k = 0; k <= 9; k++)
            {
                if(i * 100 + j * 10 + k == i * i * i + j * j * j + k * k * k)
                {
                    sum = sum + 1;
                    printf("a=%d, b=%d, c=%d.\n", i, j, k);
                }
            }
        }
    }
    return 0;
}

四、回顧

4.1 優點
1 本題比較中規中矩,只要認真讀題目,就可以實現;
4.2 改進
1 但是有地方可以改善,如果是求解總的水仙花的個數,本種方法可以實現;
2 也可以考慮通過最外層,從100-999進行篩選,然後通過取餘的方式來會獲取每一個值;

參考文獻

http://c.biancheng.net/view/504.html 使用取餘方式運算

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章