Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. พิมพ์สตริงวนรอบ (Circular Strings) ความยาว M เรียงเล็กซิโคกราฟิกใน C++

    ภาพรวมปัญหา ได้รับสตริงและจำนวน M ต้องพิมพ์สตริงวนรอบความยาว M ที่ไม่ซ้ำกัน เรียงตามลำดับเล็กซิโคกราฟิก (พจนานุกรม) ตัวอย่าง Input: str = ssssn, M = 3 Output: nss sns ssn sss คำอธิบาย: สตริงวนรอบความยาว 3 ทั้งหมด: sss, sss, ssn, sns, nss → ตัวที่ไม่ซ้ำเรียงแล้ว: nss, sns, ssn, sss วิธีแก้ปัญหา ต่

  2. พิมพ์ตัวอักษรที่ไม่ซ้ำในสตริงตามลำดับใน C++

    ภาพรวมปัญหา ได้รับสตริง ต้องพิมพ์ตัวอักษรที่ไม่ซ้ำกัน (distinct characters) ตามลำดับที่ปรากฏในสตริง ตัวอย่าง Input: tutorials Point Output: u r a l s P n วิธีแก้ปัญหา (ใช้ Array นับความถี่) สร้างอาร์เรย์ count[256] นับจำนวนครั้ง และ index[256] เก็บตำแหน่งแรก เริ่มต้น: count = 0, index = n (ความยา

  3. พิมพ์ชุดคะแนนบาสเกตบอลที่รวมกันได้ค่าที่กำหนดใน C++

    ภาพรวมปัญหา ได้รับคะแนนรวม n ต้องพิมพ์ชุดคะแนนบาสเกตบอล (1, 2, 3 แต้ม) ที่รวมกันได้ n ทุกชุดที่เป็นไปได้ ตัวอย่าง Input: 4 Output: 1 1 1 1 1 1 2 1 2 1 1 3 2 1 1 2 2 3 1 วิธีแก้ปัญหา (Recursion) ลองวางคะแนน 1, 2, 3 ตามลำดับ แล้วเรียกซ้ำหาค่าที่เหลือ (n - คะแนนที่วาง) จนครบ n ตัวอย่างโค้ด C++ #defi

  4. พิมพ์ชุดตัวประกอบทั้งหมดของตัวเลขใน C++

    ภาพรวมปัญหา ได้รับตัวเลข n ต้องพิมพ์ชุดตัวประกอบ (factor combinations) ทั้งหมดของ n ตัวอย่าง Input: 24 Output: 2 2 2 3 2 2 6 2 3 4 2 12 3 8 4 6 วิธีแก้ปัญหา (Recursion) ใช้ฟังก์ชันเวียนเกิดหาชุดตัวประกอบ เริ่มจากตัวประกอบ 2 ขึ้นไป เก็บชุดที่ผลคูณเท่ากับ n ตัวอย่างโค้ด C++ n) return;

  5. พิมพ์ชุดวงเล็บสมดุลทั้งหมดใน C++

    ภาพรวมปัญหา ได้รับจำนวนเต็ม n ต้องพิมพ์ชุดวงเล็บปีกกา { } ที่สมดุล (balanced) ทั้งหมด จำนวน n คู่ วงเล็บสมดุล (Balanced Parentheses) คู่วงเล็บที่มีวงเล็บปิดสำหรับทุกวงเล็บเปิด และซ้อนกันได้ถูกต้อง ตัวอย่าง Input: n = 2 Output: {}{} {{}} วิธีแก้ปัญหา (Recursion + Backtracking) ติดตามจำนวนวงเล็บเป

  6. พิมพ์ตัวเลข 3 หลักที่ซ้ำกันในตัวเลขใหญ่ใน C++

    ภาพรวมปัญหา ได้รับตัวเลขขนาดใหญ่ (เก็บเป็นสตริง) ต้องพิมพ์ตัวเลข 3 หลักที่ซ้ำกันพร้อมจำนวนครั้ง ตัวอย่าง Input: 98769876598765 Output: 987: 3 times 876: 3 times 765: 2 times วิธีแก้ปัญหา เก็บตัวเลขเป็นสตริง อ่าน 3 หลักแรก คำนวณค่า เลื่อนหน้าต่างขนาด 3 ไปทีละหลัก (sliding window) นับความถี่ด้วย Ma

  7. พิมพ์สตริงแบบ Wave Pattern ใน C++

    ภาพรวมปัญหา ได้รับสตริงและจำนวนบรรทัด n ต้องพิมพ์สตริงในรูปแบบ Wave Pattern จำนวน n บรรทัด ตัวอย่าง Input: Tutorial, n = 3 Output: T r U o i s t t l วิธีแก้ปัญหา ใช้การจำลองการเคลื่อนที่ลง-ขึ้น (zigzag) บนกริด 2D วางตัวอักษรตามแถว แล้วพิมพ์แถวละบรรทัด ตัวอย่างโค้ด C++ #incl

  8. พิมพ์รูปแบบตัวเลขโดยไม่ใช้ลูปใน C++

    ภาพรวมปัญหา ได้รับตัวเลข n ต้องพิมพ์รูปแบบตัวเลขลดลงทีละ 5 จนถึง 0 หรือติดลบ แล้วเพิ่มขึ้นกลับมาที่ n เดิม โดยไม่ใช้ลูป ตัวอย่าง Input: n = 12 Output: 12 7 2 -3 2 7 12 วิธีแก้ปัญหา (Recursion) ใช้ Recursion เรียกฟังก์ชันซ้ำหลังอัปเดตค่า ใช้ตัวแปร flag บอกว่ากำลังลดหรือเพิ่ม ตัวอย่างโค้ด C++ 0) {

  9. พิมพ์ตัวเลขน้อยกว่าที่กำหนดที่มีหลักต่างกันทั้งหมดใน C++

    ภาพรวมปัญหา ได้รับตัวเลข n ต้องพิมพ์ตัวเลขที่มากที่สุดแต่น้อยกว่า n ที่มีหลักต่างกันทั้งหมด (ไม่มีเลขซ้ำ) ตัวอย่าง Input: n = 2332 Output: 2319 วิธีแก้ปัญหา นับถอยหลังจาก n-1 ลงมา 0 ตรวจสอบแต่ละตัวว่าเป็น distinct digits หรือไม่ พบแล้วพิมพ์และหยุด ตัวอย่างโค้ด C++ = 0; i--) { int count[10

  10. พิมพ์ตัวเลข K หลักที่มี Digital Root เท่ากับ D ใน C++

    ภาพรวมปัญหา ได้รับ K (จำนวนหลัก) และ D (Digital Root) ต้องพิมพ์ตัวเลข K หลักที่มี Digital Root เท่ากับ D Digital Root คืออะไร? ค่าหนึ่งหลักที่ได้จากการบวกเลขหลักของตัวเลขซ้ำๆ จนเหลือหลักเดียว เรียกอีกอย่างว่า Digital Sum ตัวอย่าง Input: D = 5, K = 6 Output: 500000 วิธีแก้ปัญหา ตัวเลขที่ต้องการคือ

  11. พิมพ์เมทริกซ์แบบ Reverse Wave Form ใน C++

    ภาพรวมปัญหา ได้รับเมทริกซ์ ต้องพิมพ์ในรูปแบบ Reverse Wave Form ในบรรทัดเดียว ตัวอย่าง Input: 1 4 6 11 2 5 8 54 7 9 3 43 1 7 4 34 Output: 11 54 43 34 4 3 8 6 4 5 9 7 1 7 2 1 วิธีแก้ปัญหา พิมพ์คอลัมน์สุดท้ายลงบน, คอลัมน์ก่อนหน้าขึ้นบน, สลับกันจนถึงคอลัมน์แรก ตัวอย่างโค้ด C++ = 0) {

  12. พิมพ์เมทริกซ์สลับทิศทางซ้าย-ขวา ใน C++

    ภาพรวมปัญหา ได้รับอาร์เรย์ 2D ต้องพิมพ์สมาชิกเริ่มจากแถวแรก ซ้ายไปขวา แถวถัดไปขวาไปซ้าย สลับกันไปเรื่อยๆ ตัวอย่าง Input: array = { {2, 5}, {4, 9} } Output: 2 5 9 4 วิธีแก้ปัญหา ใช้ตัวแปร boolean direction บอกทิศทางการพิมพ์ สลับค่าหลังพิมพ์แต่ละแถว Time Complexity: O(R×C) ตัวอย่างโค้ด C++ #include

  13. พิมพ์เมทริกซ์แบบเกลียวจากจุดที่กำหนดใน C++

    ภาพรวมปัญหา ได้รับเมทริกซ์ 2D และจุด P(c,r) ต้องพิมพ์สมาชิกทั้งหมดในลำดับเกลียวทวนเข็มนาฬิกา (Anti-clockwise) เริ่มจากจุด P ตัวอย่าง Input: matrix[][] = {{3, 5, 7}} Output: (ขึ้นอยู่กับจุดเริ่มต้น) วิธีแก้ปัญหา ใช้ลูป 4 ลูปสำหรับการพิมพ์แต่ละทิศทาง เริ่มจากจุด P และขยายไปแบบเกลียว ตัวอย่างโค้ด C

  14. พิมพ์เมทริกซ์แบบ Zigzag ใน C++

    ภาพรวมปัญหา ได้รับเมทริกซ์ 2 มิติ ต้องพิมพ์ในรูปแบบ Zigzag คือ แถวคู่พิมพ์ซ้ายไปขวา แถวคี่พิมพ์ขวาไปซ้าย สลับกัน ตัวอย่าง Input: 12 99 43 10 82 50 15 75 5 Output: 12 99 43 50 82 10 15 75 5 วิธีแก้ปัญหา ใช้ตัวแปร flag บอกทิศทางการพิมพ์ สลับทิศทางหลังพิมพ์แต่ละแถว ตัวอย่างโค้ด C++ #include <ios

  15. พิมพ์เมทริกซ์แบบเกลียวย้อนกลับใน C++

    ภาพรวมปัญหา ได้รับเมทริกซ์ 2 มิติ ต้องพิมพ์สมาชิกทั้งหมดในลำดับเกลียวย้อนกลับ (Reverse Spiral) เริ่มจากกึ่งกลางไปด้านนอก ตัวอย่าง Input: 12 23 54 67 76 90 01 51 43 18 49 5 31 91 75 9 Output: 18 49 1 90 76 43 31 91 75 9 5 51 67 54 23 12 วิธีแก้ปัญหา เริ่มจากจุดกึ่งกลางของเมทริกซ์ และพิมพ์ในทิศทางเ

  16. พิมพ์เมทริกซ์แบบเกลียวทวนเข็มนาฬิกาใน C++

    ภาพรวมปัญหา ได้รับเมทริกซ์ 2 มิติ ต้องพิมพ์สมาชิกในลำดับเกลียวทวนเข็มนาฬิกา (Counter-clockwise Spiral) เริ่มจากมุมซ้ายบน ไปทิศทาง ล่าง → ขวา → บน → ซ้าย ตัวอย่าง Input: 2 4 6 1 7 9 5 0 3 Output: 2 1 5 0 3 9 7 ลำดับการเดินทาง: 1 → 5 → 9 → 13 → 14 → 15 → 16 → 12 → 8 → 4 → 3 → 2 → 6 → 10 → 11 → 7 ว

  17. พิมพ์สตริงที่ใกล้เคียงที่สุดโดยไม่มีตัวอักษรซ้ำติดกันใน C++

    ภาพรวมปัญหา ได้รับสตริงหนึ่ง ต้องพิมพ์สตริงที่ใกล้เคียงที่สุดกับสตริงเดิม แต่ไม่มีตัวอักษรซ้ำกันติดกัน ตัวอย่าง Input: good Output: goad ในตัวอย่าง ตัวอักษรที่ index 1 และ 2 เหมือนกัน (o) จึงเปลี่ยนตัวที่ index 2 วิธีแก้ปัญหา (Greedy Algorithm) ลูปผ่านสตริง ตรวจสอบคู่ตัวอักษรติดกัน ถ้าพบตัวอักษร

  18. พิมพ์กรณีที่อัลกอริทึมจัดเรียงล้มเหลวใน C++

    ภาพรวมปัญหา ได้รับอัลกอริทึมจัดเรียงและจำนวน n ต้องพิมพ์อาร์เรย์ขนาด n ที่อัลกอริทึมนี้จัดเรียงไม่สำเร็จ อัลกอริทึมที่กำหนด a[i+1] swap(a[i], a[j+1]) อัลกอริทึมนี้ใช้ลูปซ้อนสองชั้น ลูปนอกเริ่มจาก 1 ถึง n-1 ลูปในจาก i ถึง n-1 ตรวจสอบและสลับค่าที่ไม่เรียงลำดับ การวิเคราะห์ อัลกอริทึมนี

  19. Path Sum III ใน C++: หาเส้นทางที่ผลรวมเท่ากับค่าที่กำหนด

    ภาพรวมปัญหา ให้ต้นไม้ไบนารีที่แต่ละโหนดเก็บค่าจำนวนเต็ม ต้องการหาเส้นทางทั้งหมดที่เริ่มจากราก (root) ไปยังใบ (leaf) ซึ่งผลรวมของค่าโหนดในเส้นทางเท่ากับค่าที่กำหนด (target sum) ตัวอย่าง ต้นไม้: [5,4,8,11,null,13,4,7,2,null,null,5,1], Target Sum = 22 เส้นทางที่พบ: [[5,4,11,2], [5,8,4,5]] อัลกอริทึม

  20. การรวมต้นไม้ไบนารีสองต้นใน C++

    ภาพรวมปัญหา เมื่อมีต้นไม้ไบนารีสองต้น และนำต้นหนึ่งมาทับอีกต้นหนึ่ง โหนดบางส่วนจะทับซ้อนกัน ในขณะที่บางส่วนไม่ทับซ้อน เราต้องรวมทั้งสองต้นให้กลายเป็นต้นไม้ไบนารีใหม่ โดยปฏิบัติตามกฎดังนี้: หากโหนดทั้งสองทับซ้อนกัน ให้นำค่าของโหนดทั้งสองมาบวกกันเป็นค่าใหม่ของโหนดที่รวมแล้ว หากมีเพียงโหนดเดียว (อีกโห

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:127/301  20-คอมพิวเตอร์/Page Goto:1 121 122 123 124 125 126 127 128 129 130 131 132 133