由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
热门推荐
10 祝福语女友文案简短霸气
11 科研文案祝福语简短励志
12 春节拜年祝福语儿童简短
13 项目总生日祝福语简短
14 满月红包英文祝福语简短
15 女侠老师祝福语简短
16 哥哥结婚的祝福语简短
17 要过年了祝福语简短
18 祝福语简短唯美10字