按照 C++ 中的數字和進行排序


在此部分,我們將瞭解如何根據數字和對數字進行排序。因此,數字的和越少,則該數字會排在越前面,然後按照數字和的增序排列數字。

data = {14, 129, 501, 23, 0, 145}

排序後,它們將是 −

data = {0, 14, 23, 501, 145, 129}

在此,我們將建立自己的比較邏輯對數字進行排序。該比較邏輯將用在 C++ STL 的排序函式中。

演算法

compare(num1, num2):
Begin
   if sum of digits of num1 < sum of digits of num2, then
      return 1
   return 0
End

示例

 例項演示

#include<iostream>
#include<algorithm>
using namespace std;
int sumOfDigits(int n){
   int sum = 0;
   while(n){
      sum += n%10;
      n /= 10;
   }
   return sum;
}
int compare(int num1, int num2){
   if(sumOfDigits(num1) < sumOfDigits(num2))
   return 1;
   return 0;
}
main(){
   int data[] = {14, 129, 501, 23, 0, 145};
   int n = sizeof(data)/sizeof(data[0]);
   sort(data, data + n, compare);
   for(int i = 0; i<n; i++){
      cout << data[i] << " ";
   }
}

輸出

0 14 23 501 145 129

更新於: 2019-9-25

348 次瀏覽

開啟你的事業

完成課程獲得認證

開始
廣告
© . All rights reserved.