C++ 中由数组数字组成的两个数字的最小和
描述
给定一个数字数组,其中包含范围为 0 至 9 的值。任务是找出由数组的数字构成的两个数字的最小和。请注意,我们必须使用给定数组的所有数字
示例
如果输入数组为 {7, 5, 1, 3, 2, 4},则最小和为 382,因为我们可以创建数字 135 和 247。
算法
- 按升序对数组进行排序
- 通过交替从排序的数组中选取数字 (即偶数和奇数索引) 来创建两个数字
示例
#include <bits/stdc++.h> using namespace std; int getMinSum(int *arr, int n) { sort(arr, arr + n); int a = 0; int b = 0; for (int i = 0; i < n; ++i) { if (i % 2 == 0) { a = a * 10 + arr[i]; } else { b = b * 10 + arr[i]; } } return a + b; } int main() { int arr[] = {7, 5, 1, 3, 2, 4}; int n = sizeof(arr) / sizeof(arr[0]); cout << "Minimum sum = " << getMinSum(arr, n) << endl; return 0; }
当您编译并执行上述程序时。它会生成以下输出 -
输出
Minimum sum = 382
广告