Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. พิมพ์ตัวเลข N หลักที่ผลต่างสัมบูรณ์ระหว่างผลรวมหลักคู่-คี่ เท่ากับ 1 ใน C++

    ภาพรวมปัญหา ได้รับ n ต้องพิมพ์ตัวเลข N หลักที่ |ผลรวมหลักตำแหน่งคู่ - ผลรวมหลักตำแหน่งคี่| = 1 (ไม่นับ leading zeros) ตัวอย่าง Input: n = 2 Output: 10 12 21 23 32 34 43 45 54 56 65 67 76 78 87 89 98 เช่น 54: even-odd = 5-4=1, 89: 8-9=-1, |−1|=1 วิธีแก้ปัญหา (Recursion) Recursive สร้างตัวเลข พร้อมส

  2. พิมพ์ตัวเลข N หลักที่ผลรวมหลักเท่ากับค่าที่กำหนดใน C++

    ภาพรวมปัญหา ได้รับ n (จำนวนหลัก) และ sum (ผลรวมที่ต้องการ) ต้องพิมพ์ตัวเลข N หลักที่ผลรวมหลัก = sum (ไม่นับ leading zeros) ตัวอย่าง Input: n = 2, sum = 5 Output: 14 23 32 41 50 วิธีแก้ปัญหา (Recursion + Backtracking) กำหนดหลักแรก 1-9 (ไม่ให้เป็น 0) หลักที่เหลือ 0-9 Recursive ลด sum ตามหลักที่เลือ

  3. พิมพ์รูปแบบตัวเลข N หลักจาก Keypad โทรศัพท์ใน C++

    ภาพรวมปัญหา ได้รับ n ต้องพิมพ์รูปแบบตัวเลข N หลักจาก Keypad โทรศัพท์เก่า กดได้เฉพาะปุ่มติดกัน (ซ้าย, ขวา, บน, ล่าง) Keypad Layout 12ABC3DEF 4GHI5JKL6MNO 7PQRS8TUV9WXYZ *0# ตัวอย่าง Input: n=2 Output: 12 14 21 23 25 32 36 41 45 47 52 54 56 58 63 65 69 74 78 85 87 89 80 96 98 วิธีแก้ปัญหา (DFS)

  4. พิมพ์ Multiplicative Primes ≤ N ใน C++

    ภาพรวมปัญหา ได้รับจำนวนเต็ม n ต้องพิมพ์ Multiplicative Primes ทั้งหมด ≤ n Multiplicative Primes คืออะไร? จำนวนเฉพาะที่ผลคูณของหลักตัวเลขก็เป็นจำนวนเฉพาะด้วย เช่น 2, 3, 5, 7, 13, 17 23 เป็นเฉพาะแต่ไม่ใช่ Multiplicative Prime เพราะ 2×3=6 (ไม่ใช่เฉพาะ) ตัวอย่าง Input: n = 9 Output: 2 3 5 7 วิธีแก้ปั

  5. พิมพ์ Leaf Nodes ของ N-ary Tree ด้วย DFS ใน C++

    ภาพรวมปัญหา ได้รับอาร์เรย์ 2D เก็บ Edge ของ N-ary Tree ต้องพิมพ์ Leaf Nodes ทั้งหมด N-ary Tree คืออะไร? ต้นไม้ที่โหนดแต่ละตัวมีลูกได้สูงสุด n ตัว (1, 2, ..., n ลูก) ตัวอย่าง Input: edges[][] = {{5,8}, {5,6}, {8,1}, {8,4}, {6,7}} Output: 1 4 7 วิธีแก้ปัญหา (DFS) สร้าง Adjacency List จาก Edge lis

  6. พิมพ์ Leaf Nodes ของ Binary Tree ขวา-ซ้าย ใน C++

    ภาพรวมปัญหา ได้รับ Binary Tree ต้องพิมพ์ Leaf Nodes จากขวาไปซ้าย ตัวอย่าง Output: 7 4 1 วิธีแก้ปัญหา 2 แบบ 1. Preorder Traversal (Recursive) เยี่ยม Root → ขวา → ซ้าย ถ้าเป็น Leaf พิมพ์ทันที 2. Postorder Traversal (Iterative with Stack) ใช้ Stack ทำ Postorder (ขวา-ซ้าย-ราก) พิมพ์ตอนเจอ Leaf ตัว

  7. พิมพ์ Leaf Nodes ของ Binary Tree ซ้าย-ขวา แบบ Iterative ใน C++

    ภาพรวมปัญหา ได้รับ Binary Tree ต้องพิมพ์ Leaf Nodes ทั้งหมดจากซ้ายไปขวา โดยใช้วิธี Iterative (ไม่ใช้ Recursion) ตัวอย่าง Output: 1 4 7 วิธีแก้ปัญหา (DFS Iterative) ใช้ Stack จำลอง Recursion เริ่มจากราก ถ้าเป็น Leaf → พิมพ์ ไม่ใช่ → Push ลูกขวาแล้วลูกซ้าย (เพื่อให้ซ้ายถูกประมวลผลก่อน) ตัวอย่างโค้

  8. พิมพ์เส้นทาง K-Sum ทั้งหมดใน Binary Tree ใน C++

    ภาพรวมปัญหา ได้รับ Binary Tree และตัวเลข K ต้องพิมพ์เส้นทางทั้งหมดที่ผลรวมโหนดเท่ากับ K เส้นทางเริ่ม/จบที่โหนดไหนก็ได้ แต่ต้องไปจากบนลงล่าง (root-to-leaf direction) ตัวอย่าง K = 5 Output: 1 3 1, 3 2, 1 4 วิธีแก้ปัญหา ถือแต่ละโหนดว่าเป็นรากชั่วคราว DFS หาเส้นทางจากโหนดนั้นลงไป ผลรวม = K เก็บเส้นท

  9. พิมพ์ Jumping Numbers น้อยกว่าหรือเท่ากับค่าที่กำหนดใน C++

    ภาพรวมปัญหา ได้รับตัวเลข n ต้องพิมพ์ Jumping Numbers ทั้งหมด ≤ n Jumping Numbers คืออะไร? ตัวเลขที่หลักติดกันต่างกัน 1 เท่านั้น เช่น 4565, 98, 7 ตัวเลข 1 หลักทั้งหมดเป็น Jumping Numbers 235 ไม่ใช่ เพราะ 3 และ 5 ต่างกัน 2 ตัวอย่าง Input: N = 32 Output: 0 1 2 3 4 5 6 7 8 9 10 12 21 23 32 วิธีแก้ปัญ

  10. พิมพ์ Internal Nodes ของ Binary Tree ใน C++

    ภาพรวมปัญหา ได้รับ Binary Tree ต้องพิมพ์ Internal Nodes ทั้งหมด (โหนดที่มีลูกอย่างน้อย 1 ตัว = ไม่ใช่ Leaf) ตัวอย่าง Output: 7 4 9 วิธีแก้ปัญหา (BFS Traversal) ใช้ Queue สำหรับ BFS Pop โหนด ตรวจสอบว่ามีลูกซ้ายหรือขวา ถ้ามีลูกอย่างน้อย 1 ตัว → เป็น Internal Node → พิมพ์ Push ลูกเข้า Queue ตัวอย

  11. พิมพ์ Interleaving Strings ทั้งหมดของสองสตริงใน C++

    ภาพรวมปัญหา ได้รับสตริง str1 และ str2 ต้องพิมพ์ Interleaving Strings ทั้งหมด (สตริงที่สร้างจากการผสมสองสตริงโดยรักษาลำดับตัวอักษรของแต่ละสตริง) ตัวอย่าง Input: str1 = XY, str2 = NS Output: XYNS, XNYS, XNSY, NXYS, NXSY, NSXY วิธีแก้ปัญหา (Recursion) สร้างบัฟเฟอร์ขนาด m+n แต่ละขั้นตอนเลือกตัวอักษรจ

  12. พิมพ์จำนวนเต็มที่เป็นผลรวมกำลังของสองตัวเลขใน C++

    ภาพรวมปัญหา ได้รับ a, b และ bound ต้องพิมพ์ค่าทั้งหมด < bound ที่เป็นผลรวมของ a^i + b^j ตัวอย่าง Input: a=2, b=3, bound=8 Output: 2 3 4 5 7 วิธีแก้ปัญหา คำนวณกำลังของ y ล่วงหน้าเก็บใน vector = bound) bound) เก็บผลรวมใน set (กรองซ้ำและเรียง) ตัวอย่างโค้ด C++ #include <bits/stdc++.h> using

  13. พิมพ์ลำดับเพิ่มขึ้นความยาว K จากจำนวนธรรมชาติ N ตัวแรกใน C++

    ภาพรวมปัญหา ได้รับ K และ n ต้องพิมพ์ลำดับเพิ่มขึ้น (strictly increasing) ความยาว K ใช้จำนวนธรรมชาติ 1 ถึง n ตัวอย่าง Input: n = 4, K = 2 Output: 1 2, 1 3, 1 4, 2 3, 2 4, 3 4 วิธีแก้ปัญหา (Recursion + Backtracking) สร้างอาร์เรย์เก็บลำดับปัจจุบัน แต่ละตำแหน่งเลือกตัวเลขมากกว่าตัวก่อนหน้า ลองทุกค่าจ

  14. พิมพ์ Good Numbers ในช่วงที่กำหนดใน C++

    ภาพรวมปัญหา ได้รับ L, R, และ d ต้องพิมพ์ Good Numbers ในช่วง L ถึง R ที่ไม่มีหลัก d Good Number คืออะไร? 2 ตัวอย่าง Input: L = 400, R = 500, k = 3 Output: 410, 420, 421 Good numbers ระหว่าง 400-500: 410, 420, 421, 430 แต่ 430 มีหลัก 3 จึงไม่พิมพ์ วิธีแก้ปัญหา ลูปตรวจสอบทุกตัวเลขในช่วง L ถึง R ต

  15. พิมพ์ Funny Words ในประโยคใน C++

    ภาพรวมปัญหา ได้รับประโยค ต้องพิมพ์คำที่เป็น Funny Words ทั้งหมด Funny Word คืออะไร? คำที่ความต่างสัมบูรณ์ระหว่างตัวอักษรติดกันของคำเดิม และคำที่กลับหลัง (reverse) เท่ากันทุกคู่ |string[0] - string[1]| = |rev[0] - rev[1]| ตัวอย่าง Input: ABRS Output: Yes Explanation: Reverse = SRBA |A-B| = 1 = |S-R

  16. พิมพ์ Full Nodes ใน Binary Tree ใน C++

    ภาพรวมปัญหา ได้รับ Binary Tree ต้องพิมพ์โหนดที่เป็น Full Nodes ทั้งหมด Full Node คืออะไร? โหนดที่มีลูกซ้ายและลูกขวาครบทั้งคู่ (มีลูก 2 ตัว) ตัวอย่าง ในต้นไม้นี้ โหนด 4 และ 9 เป็น Full Nodes วิธีแก้ปัญหา Traversal แบบใดก็ได้ (Inorder, Preorder, Postorder) ตรวจสอบแต่ละโหนดว่า left != NULL และ righ

  17. พิมพ์โหนดคู่ใน Binary Search Tree ใน C++

    ภาพรวมปัญหา ได้รับ Binary Search Tree (BST) ต้องพิมพ์โหนดที่มีค่าเป็นเลขคู่ทั้งหมด Binary Search Tree คืออะไร? ลูกซ้ายมีค่าน้อยกว่าโหนดแม่ ลูกขวามีค่ามากกว่าโหนดแม่ ทุกโหนดต้องปฏิบัติตามกฎข้างต้น ตัวอย่าง Output: 2 4 6 8 วิธีแก้ปัญหา ทำ Inorder Traversal (ซ้าย-ราก-ขวา) จะได้ค่าจากน้อยไปมาก ตรว

  18. พิมพ์การจัดเรียง (Permutations) ที่ไม่ซ้ำของสตริงที่มีตัวอักษรซ้ำใน C++

    ภาพรวมปัญหา ได้รับสตริงที่อาจมีตัวอักษรซ้ำ ต้องพิมพ์การจัดเรียง (permutations) ที่ไม่ซ้ำกันทั้งหมด ตัวอย่าง Input: XYZ Output: XYZ XZY YXZ YZX ZYX ZXY วิธีแก้ปัญหา (Algorithm แบบ Dictionary Order) เรียงตัวอักษรในสตริงก่อน หา permutation ถัดไปในลำดับเล็กซิโคกราฟิกซ้ำๆ จนหมด ขั้นตอนหา permutation ถ

  19. พิมพ์จำนวนเต็มที่ไม่ซ้ำจากผลบวก K ตัวจากอาร์เรย์ N ตัวใน C++

    ภาพรวมปัญหา ได้รับอาร์เรย์ N จำนวนเต็ม และตัวเลข K ต้องพิมพ์จำนวนเต็มที่ไม่ซ้ำกันที่ได้จากการบวก K ตัวจากอาร์เรย์ (เลือกซ้ำได้) ตัวอย่าง Input: array = {2, 5, 13, 9}, K = 2 Output: 4 7 10 11 14 15 18 22 26 Explanation: 2+2=4, 2+5=7, 2+13=15, 2+9=11, 5+5=10, 5+13=18, 5+9=14, 13+13=26, 13+9=22, 9+9=1

  20. พิมพ์ค่าที่ไม่ซ้ำในอาร์เรย์จำนวนเต็มใน C++

    ภาพรวมปัญหา ได้รับอาร์เรย์จำนวนเต็ม ต้องพิมพ์ค่าที่ไม่ซ้ำกัน (distinct values) ทั้งหมด ตัวอย่าง Input: array = {1, 5, 7, 12, 1, 6, 10, 7, 5} Output: 1 5 7 12 6 10 วิธีแก้ปัญหา 3 แบบ 1. Nested Loops (Simple, O(n²)) ลูปนอกเลือกค่า ลูปในเช็คค่าก่อนหน้า ถ้ายังไม่เคยเจอ → พิมพ์ 2. Sorting (O(n log n)

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