Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ผลรวมขั้นต่ำของตัวเลขสองตัวที่เกิดขึ้นจากหลักของอาร์เรย์ใน C++


คำอธิบาย

กำหนดอาร์เรย์ของตัวเลขที่มีค่าตั้งแต่ 0 ถึง 9 ภารกิจคือการหาผลรวมต่ำสุดที่เป็นไปได้ของตัวเลขสองตัวที่เกิดขึ้นจากตัวเลขของอาร์เรย์ โปรดทราบว่าเราต้องใช้ alldigits ของอาร์เรย์ที่กำหนด

ตัวอย่าง

หากอาร์เรย์อินพุตคือ {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