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

C 語言入門必練:13 道經典算法題詳解與代碼實現

     編輯:關於C語言

圖形打印系列

1. 左對齊直角三角形

輸入 5,輸出逐行遞增星號。雙層循環,外層控制行,內層打印星號數等於行號。

2. 右對齊直角三角形

每行先打印空格再打印星號,空格數 = 總行數 - 當前行數。

3. 等腰三角形(金字塔)

每行兩側對稱空格,中間星號數 = 2×行號 - 1。

4. 字符圖案:A/B 組合三角形

左側空格,中間 A 遞增,右側 B 遞減,展示多字符混合打印技巧。

數學計算系列

5. 質數判斷

試除法:從 2 遍歷到 √n(代碼中簡化為 n-1),能整除即合數。優化點:只需檢查到 √n,跳過偶數。

6. 最大公約數 (GCD)

遞減遍歷法:從兩數較小者向下檢查,首個能同時整除者即為 GCD。更高效應用輾轉相除法(歐幾里得算法)。

7. 最小公倍數 (LCM)

從兩數較大者開始遞增,首個能同時被整除者即為 LCM。公式法:LCM = a×b / GCD 更高效。

8. 質因數分解

從 2 開始試除,能整除則輸出因子並縮減被除數,索引回退重複檢查同一因子,直到分解完畢。

9. 重複數字累加和

如 3+33+333+... 利用遞推公式:ret = ret*10 + a; sum += ret,單次循環完成當前項構造與累加。

10. 五位數回文數查找

遍歷 10000-99999,拆解個/十/千/萬位,判斷首尾、次首尾對稱。位運算提取數字位高效且通用。

11. 動態輸入求最大值

以 0 為終止標記,逐個讀入比較更新最大值。初始化 max 為首個輸入值,避免負數干擾。

12. 階乘計算

迭代累乘 1 到 n。注意 int 型別溢出風險(13! 超出 32 位有符號範圍),實際應用建議用 long long 或大整數庫。

13. 整數逆序輸出

取模 10 獲取末位存入數組,整除 10 縮減,直到為 0。數組天然實現逆序,最後順序遍歷輸出。

學習建議

這 13 題涵蓋循環控制、條件判斷、數組操作、數學邏輯等 C 語言核心基礎。建議:

  1. 手寫代碼而非複製貼上,強化語法肌肉記憶
  2. 嘗試優化(如質數判斷至 √n、GCD 用輾轉相除法)
  3. 關注邊界條件:輸入 0、1、負數、大數溢出等
  4. 嘗試用遞歸重寫階乘、GCD 等題目,理解遞歸與迭代轉換
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved