按照 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
广告