krujeen / ocom

0 stars 0 forks source link

โจทย์: สามเหลี่ยมปาสคาล (PascalTriangle) #3

Open krujeen opened 1 month ago

krujeen commented 1 month ago

โจทย์: สามเหลี่ยมปาสคาล

สถานการณ์

คุณเป็นนักศึกษาวิชาคณิตศาสตร์ที่กำลังศึกษาเรื่องสามเหลี่ยมปาสคาล อาจารย์ของคุณต้องการให้คุณเขียนโปรแกรมที่สามารถสร้างรูปแบบสามเหลี่ยมปาสคาลตามจำนวนแถวที่กำหนด เพื่อช่วยในการเรียนรู้และทำความเข้าใจรูปแบบของสามเหลี่ยมปาสคาลได้ดียิ่งขึ้น

โจทย์

เขียนโปรแกรมที่รับจำนวนแถว n จากผู้ใช้ และแสดงสามเหลี่ยมปาสคาลที่มีจำนวนแถวเท่ากับ n

สามเหลี่ยมปาสคาลมีลักษณะดังนี้:

  1. แถวแรกมีเพียงตัวเลข 1 ตัวเดียว
  2. แถวถัดไป แต่ละตัวเลขคือผลรวมของตัวเลขสองตัวที่อยู่เหนือมัน
  3. หากไม่มีตัวเลขด้านบน ให้ใช้ 0 ในการคำนวณ

ข้อมูลนำเข้า (Input)

ข้อมูลส่งออก (Output)

ข้อจำกัด

ตัวอย่างข้อมูลนำเข้าและข้อมูลส่งออก

ตัวอย่างที่ 1

Input:

5

Output:

        1
      1   1
    1   2   1
  1   3   3   1
1   4   6   4   1

ตัวอย่างที่ 2

Input:

3

Output:

    1
  1   1
1   2   1

ตัวอย่างที่ 3

Input:

1

Output:

1

หมายเหตุ

krujeen commented 1 month ago

https://github.com/krujeen/ocom/blob/main/PascalTriangle.cpp

krujeen commented 1 month ago

Test Cases สำหรับโจทย์สามเหลี่ยมปาสคาล

Test Case 1: ค่าน้อยที่สุดที่เป็นไปได้

Input: 1 Expected Output:

1

Test Case 2: ค่าทั่วไปขนาดเล็ก

Input: 5 Expected Output:

        1
      1   1
    1   2   1
  1   3   3   1
1   4   6   4   1

Test Case 3: ค่าทั่วไปขนาดกลาง

Input: 8 Expected Output:

              1
            1   1
          1   2   1
        1   3   3   1
      1   4   6   4   1
    1   5  10  10   5   1
  1   6  15  20  15   6   1
1   7  21  35  35  21   7   1

Test Case 4: ค่าทั่วไปขนาดใหญ่

Input: 15 Expected Output:

                            1
                          1   1
                        1   2   1
                      1   3   3   1
                    1   4   6   4   1
                  1   5  10  10   5   1
                1   6  15  20  15   6   1
              1   7  21  35  35  21   7   1
            1   8  28  56  70  56  28   8   1
          1   9  36  84 126 126  84  36   9   1
        1  10  45 120 210 252 210 120  45  10   1
      1  11  55 165 330 462 462 330 165  55  11   1
    1  12  66 220 495 792 924 792 495 220  66  12   1
  1  13  78 286 715 1287 1716 1716 1287 715 286  78  13   1
1  14  91 364 1001 2002 3003 3432 3003 2002 1001 364  91  14   1

Test Case 5: ค่ามากที่สุดที่เป็นไปได้

Input: 20 Expected Output: (ไม่แสดงผลลัพธ์เนื่องจากขนาดใหญ่เกินไป แต่ควรแสดงผลถูกต้อง 20 แถว)

Test Case 6: ค่าขอบล่าง + 1

Input: 2 Expected Output:

  1
1   1

Test Case 7: ค่าขอบบน - 1

Input: 19 Expected Output: (ไม่แสดงผลลัพธ์เนื่องจากขนาดใหญ่เกินไป แต่ควรแสดงผลถูกต้อง 19 แถว)

Test Case 8: ค่าที่อาจทำให้เกิดปัญหา Overflow

Input: 18 Expected Output: (ไม่แสดงผลลัพธ์เนื่องจากขนาดใหญ่เกินไป แต่ควรแสดงผลถูกต้อง 18 แถว และค่าสูงสุดไม่เกิน 2147483647)

Test Case 9: ค่าที่อาจทำให้เกิดปัญหา Time Limit Exceeded

Input: 17 Expected Output: (ไม่แสดงผลลัพธ์เนื่องจากขนาดใหญ่เกินไป แต่ควรแสดงผลถูกต้อง 17 แถว)

Test Case 10: ค่าที่อาจทำให้เกิดปัญหาในการจัดรูปแบบ Output

Input: 10 Expected Output:

                1
              1   1
            1   2   1
          1   3   3   1
        1   4   6   4   1
      1   5  10  10   5   1
    1   6  15  20  15   6   1
  1   7  21  35  35  21   7   1
1   8  28  56  70  56  28   8   1
1   9  36  84 126 126  84  36   9   1
krujeen commented 1 month ago

โจทย์: พีระมิดแห่งดวงดาว

สถานการณ์

ในยุคอวกาศอันรุ่งโรจน์ มนุษยชาติได้ค้นพบดาวเคราะห์ที่มีศักยภาพในการรองรับชีวิต ชื่อว่า "นอวา พริม่า" แต่เมื่อยานสำรวจลงจอด กลับพบซากอารยธรรมโบราณที่สาบสูญไปนานนับพันปี ณ ใจกลางซากปรักหักพังคือพีระมิดคริสตัลขนาดมหึมา ที่ส่องประกายระยิบระยับด้วยแสงของดวงดาวนับล้านดวง

คุณ ในฐานะนักโบราณคดีอวกาศผู้เชี่ยวชาญด้านคณิตศาสตร์โบราณ ได้รับมอบหมายให้ไขปริศนาของพีระมิดนี้ จากการศึกษาเบื้องต้น คุณพบว่าแต่ละชั้นของพีระมิดประกอบด้วยคริสตัลที่มีจำนวนดวงดาวเรียงตัวกันในรูปแบบที่คล้ายคลึงกับสามเหลี่ยมปาสคาล

นักวิทยาศาสตร์เชื่อว่าการเข้าใจรูปแบบนี้อาจเป็นกุญแจสำคัญในการปลดล็อกความลับของพลังงานมหาศาลที่แผ่ซ่านออกมาจากพีระมิด ซึ่งอาจเป็นประโยชน์ในการสร้างที่อยู่อาศัยบนดาวเคราะห์แห่งนี้

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

การสร้างแบบจำลองที่ถูกต้องและรวดเร็วในแต่ละคืนจะช่วยให้คุณค่อยๆ ไขปริศนาของพีระมิดทีละชั้น ซึ่งอาจนำไปสู่การค้นพบที่ยิ่งใหญ่เกี่ยวกับอารยธรรมโบราณและอาจเป็นกุญแจสู่การตั้งถิ่นฐานของมนุษย์บนดาวเคราะห์ดวงใหม่

โจทย์

เขียนโปรแกรมที่รับจำนวนแถว n (จำนวนชั้นของพีระมิดที่ปรากฏบนคริสตัล) และแสดงสามเหลี่ยมปาสคาลที่มีจำนวนแถวเท่ากับ n

สามเหลี่ยมปาสคาลมีลักษณะดังนี้:

  1. แถวแรกมีเพียงตัวเลข 1 ตัวเดียว
  2. แถวถัดไป แต่ละตัวเลขคือผลรวมของตัวเลขสองตัวที่อยู่เหนือมัน
  3. หากไม่มีตัวเลขด้านบน ให้ใช้ 0 ในการคำนวณ

ข้อมูลนำเข้า (Input)

ข้อมูลส่งออก (Output)

ข้อจำกัด

[ส่วนที่เหลือของโจทย์ยังคงเหมือนเดิม ได้แก่ ตัวอย่างข้อมูลนำเข้าและข้อมูลส่งออก และหมายเหตุ]