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

โปรแกรม C++ หาผลรวมต่ำสุดของสองจำนวนที่สร้างจากหลักของอาร์เรย์


คำอธิบาย

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

ตัวอย่าง

ถ้าอาร์เรย์อินพุตคือ {7, 5, 1, 3, 2, 4} ผลรวมต่ำสุดคือ 382 เนื่องจากเราสามารถสร้างสองจำนวนได้คือ 135 และ 247

อัลกอริทึม

  • เรียงลำดับอาร์เรย์ในลำดับเพิ่มขึ้น
  • สร้างสองจำนวนโดยการเลือกหลักจากอาร์เรย์ที่เรียงแล้วสลับกัน คือ จากดัชนีคู่และคี่

ตัวอย่างโค้ด C++

#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