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

C語言統計1到100中數字9出現次數:位拆解法實現

     編輯:關於C語言

C語言統計 1-100 中數字 9 出現次數:逐位分解算法

經典數字統計問題,通過百位、十位、個位分解檢查,展示整數拆解與計數邏輯。

算法思路

對每個數 num:


hundred = num / 100;           // 百位
ten = (num % 100) / 10;        // 十位
unit = num % 10;               // 個位

分別判斷三位是否為 9,累加計數。

完整代碼


#include 

int main() {
    int count = 0;
    for (int num = 1; num <= 100; num++) {
        int hundred = num / 100;
        int ten = (num % 100) / 10;
        int unit = num % 10;
        
        if (hundred == 9) count++;
        if (ten == 9) count++;
        if (unit == 9) count++;
    }
    printf("9出現的個數:\n%d\n", count);
    return 0;
}

執行結果

9出現的個數:
20

驗證邏輯

  • 個位為 9:9, 19, 29, ..., 99 → 10 次
  • 十位為 9:90-99 → 10 次
  • 百位為 9:無(範圍 1-100)
  • 99 被計算兩次(十位+個位),符合題意

擴展思考

通用化統計任意範圍 [1, N] 中數字 d 出現次數:

  • 數學法:按位計算,O(log N)
  • 字符串法:轉字符串遍歷,代碼簡潔
  • 遞歸/動態規劃:數位 DP 模板

本題通過直觀的位拆解法,強化整數運算與循環累加基本功。

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