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

C 語言將整數各位數字重組為最大值:計數排序與位數拆解

     編輯:程式設計綜合問答

演算法

  1. 將整數拆解為各位數字(0-9)。
  2. 統計各數字出現次數(計數陣列 cnt[10])。
  3. 從 9 遞減至 0,按次數輸出數字,組成最大整數。

代碼


int maxNumber(int n) {
    int cnt[10] = {0};
    if (n == 0) return 0;
    while (n > 0) {
        cnt[n % 10]++;
        n /= 10;
    }
    int result = 0;
    for (int d = 9; d >= 0; --d) {
        while (cnt[d]-- > 0) {
            result = result * 10 + d;
        }
    }
    return result;
}

範例

輸入 624891 → 統計 {1,2,4,6,8,9} → 輸出 986421。

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