首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言經典例題:輸出 100-999 所有水仙花數(阿姆斯壯數)

     編輯:關於C語言

水仙花數定義

三位數 abc,滿足 a³ + b³ + c³ = abc。例如 153 = 1³ + 5³ + 3³。

算法思路

  1. 遍歷 100-999。
  2. 分解百位 i = n/100、十位 j = n/10%10、個位 k = n%10。
  3. 判斷 i*i*i + j*j*j + k*k*k == n。

完整代碼

#include <stdio.h>
#include <stdlib.h>

int main() {
    printf("水仙花數:");
    for (int n = 100; n < 1000; n++) {
        int i = n / 100;
        int j = n / 10 % 10;
        int k = n % 10;
        if (i*i*i + j*j*j + k*k*k == n)
            printf("%-5d", n);
    }
    printf("\n");
    system("pause");
    return 0;
}

輸出結果

水仙花數:153  370  371  407

擴展思考

  • N 位數廣義阿姆斯壯數:Σ digit^N == number。
  • 預計算 0-9 的立方存表,避免重複乘法。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved