บทนำ
โจทย์ง่ายๆ: แบ่งจำนวนเต็ม n เป็นสองจำนวน a และ b โดยที่ a = n/2 (ปัดลง) และ b = n - a
สูตรคณิตศาสตร์
a = n / 2 b = n - a
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
void divideTheNumber(int n) {
int a = n / 2;
int b = n - a;
cout << a << " " << b << endl;
}
int main() {
int n = 13;
divideTheNumber(n);
}
ผลลัพธ์
6 7
คำอธิบาย
- n = 13
- a = 13 / 2 = 6 (integer division ปัดลง)
- b = 13 - 6 = 7
- ผลรวม a + b = 13 ✓
- ความต่าง |a - b| = 1 (น้อยที่สุดที่เป็นไปได้)
สรุป
วิธีแบ่งจำนวนเต็มเป็นสองส่วนที่ใกล้เคียงกันมากที่สุด ใช้ได้กับการแบ่งงานภาระ (Load Balancing) แบบง่ายๆ