ภาพรวมปัญหา
ให้จำนวนเต็ม N แทนจำนวนครั้งที่ตัดวงกลม 2 มิติ แต่ละครั้งตัดแบ่งวงกลมเป็น 2 ส่วน ต้องการหาจำนวนชิ้นทั้งหมดหลังตัด N ครั้ง
สูตรคำนวณ
จำนวนชิ้น = 2 × N
เพราะแต่ละครั้งที่ตัดจะเพิ่มจำนวนชิ้นขึ้น 2 ชิ้น (ตัด 1 ชิ้นกลายเป็น 2 ชิ้น)
ตัวอย่าง
Input: N = 1
Output: 2
Input: N = 3
Output: 6
โค้ดตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
int main() {
int N = 2;
int pieces = 2 * N;
cout << "Number of pieces of circle: " << pieces;
return 0;
}
ผลลัพธ์
Number of pieces of circle: 4
หมายเหตุสำคัญ
โจทย์นี้ต่างจาก "วงกลมตัดด้วยเส้นตรง N เส้น" (Maximum pieces = N(N+1)/2 + 1) ซึ่งเป็นปัญหา classic อื่น
ที่นี่ "แต่ละครั้งตัดแบ่งวงกลมเป็น 2 ส่วน" หมายถึงตัดผ่านศูนย์กลางเสมอ (cutting through center) ดังนั้นแต่ละครั้งเพิ่ม 2 ชิ้น
ความซับซ้อน
- เวลา: O(1)
- พื้นที่: O(1)