6、编写一个函数SortData,对向量B中的所有整数根据其各位数字之和进行升序排序。 // 数字之和是指整数的各个数字之和,例如:123的数字之和为1 + 2 + 3 = 6。
时间: 2024-06-03 17:08:31 浏览: 41
数字排序:按升序或降序对数字进行排序。-matlab开发
5星 · 资源好评率100%
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int DigitSum(int n) { // 计算数字之和
int sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
bool Compare(int a, int b) { // 比较数字之和
return DigitSum(a) < DigitSum(b);
}
void SortData(vector<int>& B) { // 排序
sort(B.begin(), B.end(), Compare);
}
int main() {
vector<int> B = {123, 54, 789, 12};
SortData(B);
for (int i = 0; i < B.size(); i++) {
cout << B[i] << " ";
}
cout << endl;
return 0;
}
阅读全文