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

นับจำนวนชิ้นของวงกลมหลังตัด N ครั้งใน C++

ภาพรวมปัญหา

ให้จำนวนเต็ม 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)