首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言求 1000 以內水仙花數:完整程式碼與演算法解析

     編輯:程式設計綜合問答

水仙花數定義

三位數 abc,滿足 a³ + b³ + c³ = abc。1000 以內僅含三位數(100-999)。

完整程式碼

#include 
#include 

int main() {
    printf("1000 以內的水仙花數:\n");
    for (int n = 100; n < 1000; n++) {
        int a = n / 100;          // 百位
        int b = (n / 10) % 10;    // 十位
        int c = n % 10;           // 個位
        if (a*a*a + b*b*b + c*c*c == n) {
            printf("%d ", n);
        }
    }
    printf("\n");
    return 0;
}

執行結果

1000 以內的水仙花數:
153 370 371 407

演算法解析

  • 時間複雜度 O(900) ≈ O(1),極快。
  • 位數拆解:整除與取模運算,無需字串轉換。
  • 擴展至 n 位數:預計算 0-9 的 n 次方表,避免重複 pow() 呼叫。

參考資源

CSDN 部落格完整教學:C語言計算水仙花數

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved