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

โปรแกรม C++ ตรวจสอบการแจกถุงขนมให้เพื่อน 2 คนได้จำนวนเท่ากัน


คำอธิบายปัญหา

สมมติว่าเรามีอาร์เรย์ A 4 องค์ประกอบ มีถุงขนม 4 ถุง ถุงที่ i มีขนม A[i] ชิ้น ต้องการให้แต่ละถุงแก่เพื่อน 2 คน ต้องการทราบว่าสามารถแจกได้ไหมที่แต่ละคนได้ขนมรวมเท่ากัน

ตัวอย่าง: A = [1, 7, 11, 5] ผลลัพธ์คือ True เพราะให้ถุงที่ 1 และ 3 แก่คนแรก (1+11=12) และถุงที่ 2 และ 4 แก่คนที่ 2 (7+5=12)

ขั้นตอนการแก้ปัญหา

a := A[0], b := A[1], c := A[2], d := A[3]
ถ้า (a+b == c+d) หรือ (a+c == b+d) หรือ (a+d == b+c)
   หรือ (a+b+c == d) หรือ (a+b+d == c)
   หรือ (a+c+d == b) หรือ (b+c+d == a):
    คืนค่า true
มิฉะนั้น: คืนค่า false

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

#include <bits/stdc++.h>
using namespace std;

bool solve(vector<int> A) {
    int a = A[0];
    int b = A[1];
    int c = A[2];
    int d = A[3];
    if (a + b == c + d || a + c == b + d || a + d == b + c ||
        a + b + c == d || a + b + d == c || a + c + d == b || b + c + d == a)
        return true;
    else
        return false;
}

int main() {
    vector<int> A = { 1, 7, 11, 5 };
    cout << solve(A) << endl;
}

อินพุต

1, 7, 11, 5

เอาต์พุต

1