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

C 語言實作:高效輸出 1-100 間能被 4 和 6 整除的數字

     編輯:程式設計綜合問答

經典 C 語言練習題:輸出 1 到 100 之間所有能同時被 4 和 6 整除的數字。本文提供最佳化解法並解析數學原理。

數學核心:最小公倍數 (LCM)

能同時被 4 和 6 整除 ⇔ 能被 LCM(4, 6) = 12 整除。
因此問題轉化為:輸出 1-100 間所有 12 的倍數。

最佳化程式碼

#include <stdio.h>

int main() {
    // 直接從 12 開始,每次遞增 12,無需判斷除法
    for (int i = 12; i <= 100; i += 12) {
        printf("%d ", i);
    }
    return 0;
}

輸出結果

12 24 36 48 60 72 84 96

方案比較

方法時間複雜度優點缺點
暴力法 (1-100 逐一判斷 %4==0 && %6==0)O(n)直觀易懂執行 100 次模運算,效率低
LCM 步進法 (i += 12)O(n/12)零除法運算、極速、程式碼最簡潔需理解 LCM 數學概念

擴展應用

此技巧適用於所有「同時能被多數整除」問題:

  • 能被 3、5、7 整除 → 步進 LCM(3,5,7) = 105
  • 尋找 1-1000 間能被 8、12 整除 → 步進 LCM(8,12) = 24

總結

善用數學性質 (LCM) 將「判斷問題」轉化為「生成問題」,是演算法優化的經典思維。這不僅能寫出更高效的代碼,更能培養數學與程式結合的解題直覺。

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