Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. หาผลรวมของเซตย่อยที่แตกต่างกันทั้งหมดของอาร์เรย์ด้วย C++

    สมมติว่าเรามีชุดของจำนวนเต็ม ให้หาผลรวมที่แตกต่างกันซึ่งสามารถสร้างได้จากเซตย่อย (Subset) ของชุดที่กำหนด และพิมพ์ตามลำดับจากน้อยไปมาก ผลรวมของสมาชิกอาร์เรย์มีค่าน้อย ให้พิจารณาอาร์เรย์เช่น [1, 2, 3] ผลลัพธ์จะเป็น 0, 1, 2, 3, 4, 5, 6 เซตย่อยที่แตกต่างกันคือ {}, {1}, {2}, {3}, {1, 2}, {2, 3}, {1, 3},

  2. โปรแกรมพิมพ์โหนดในมุมมองบนสุดของต้นไม้แบบทวิภาคด้วย C++

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่พิมพ์โหนดทั้งหมดที่ปรากฏในมุมมองบนสุด (Top View) ของต้นไม้แบบทวิภาค (Binary Tree) ที่กำหนด แนวคิดของมุมมองบนสุด สำหรับต้นไม้แบบทวิภาค โหนดจะปรากฏในมุมมองบนสุดหากมันเป็นโหนดแรกที่ระยะแนวนอน (Horizontal Distance) นั้นๆ ระยะแนวนอนสำหรับโหนดซ้ายของโหนด x คือ x-1 และส

  3. โปรแกรม C++ หาสับเซต (Subsets) ที่แตกต่างกันทั้งหมดของเซตที่กำหนด

    ที่นี่เราจะดูวิธีแสดงสับเซตที่แตกต่างกันทั้งหมดของเซตที่กำหนด ถ้าเซตคือ {1, 2, 3} สับเซตจะเป็น {}, {1}, {2}, {3}, {1, 2}, {2, 3}, {1, 3}, {1, 2, 3} เซตของสับเซตทั้งหมดเรียกว่า Power Set Power Set มี 2n สมาชิก เราจะวนลูปจาก 0 ถึง 2n (ไม่รวม) ในแต่ละรอบ เราจะตรวจสอบว่า บิตที่ i ในตัวนับปัจจุบันถูกตั้

  4. โปรแกรม C++ พิมพ์ตัวเลขที่ไม่มีคู่ติดกันเป็น Coprime แต่ทุก 3 ตัวติดกันเป็น Coprime

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมพิมพ์ตัวเลขที่ไม่มีคู่ติดกันเป็น coprime (ซึ่งร่วม) และทุก 3 ตัวติดกันเป็น coprime ในนี้ เราจะได้รับจำนวนเต็ม N เราต้องพิมพ์ N จำนวนเต็มน้อยกว่า 109 ที่ทำให้ไม่มีคู่ติดกันเป็น coprime แต่ชุด 3 ตัวติดกันต้องเป็น coprime ตัวอย่าง สมมติเรามีจำนวนเต็ม 4 ตัวเลขที่ตรงตาม

  5. โปรแกรม C++ พิมพ์เส้นทางจากรากไปโหนดที่กำหนดในต้นไม้ไบนารี

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

  6. โปรแกรม C++ หาพิกัดทั้งหมดที่เป็นไปได้ของรูปสี่เหลี่ยมขนาน

    หาพิกัดทั้งหมดที่เป็นไปได้จากพิกัดสามจุดที่กำหนด เพื่อสร้างรูปสี่เหลี่ยมขนานที่มีพื้นที่ไม่เป็นศูนย์ สมมติ A, B, C เป็นสามจุดที่กำหนด เราสามารถมีสถานการณ์ที่เป็นไปได้เพียงสามแบบ AB, AC เป็นด้าน และ BC เป็นเส้นทแยงมุม AB, BC เป็นด้าน และ AC เป็นเส้นทแยงมุม BC, AC เป็นด้าน และ AB เป็นเส้นทแยงมุม ดั

  7. โปรแกรม C++ พิมพ์เส้นทางจากรากไปทุกโหนดใน Complete Binary Tree

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

  8. โปรแกรม C++ หาสตริงทั้งหมดที่ตรงกับรูปแบบเฉพาะในพจนานุกรม

    พิจารณาว่าเรามีรายการสตริงเรียกว่าพจนานุกรม เรามีสตริงรูปแบบอีกตัวหนึ่ง งานของเราคือหาสตริงที่ตรงกับรูปแบบ สมมติพจนานุกรมเป็น [abb, xyz, aab, kmm] และรูปแบบคือ stt ผลลัพธ์จะเป็น abb และ kmm เนื่องจากรูปแบบมีตัวอักษรตัวแรก แล้วตามด้วยตัวอักษรเดียวกันสองตัว จึงจะตามรูปแบบสตริงเดียวกัน เพื่อแก้ปัญหานี

  9. โปรแกรม C++ หารูปแบบทั้งหมดของ "1(0+)1" ในสตริงที่กำหนด

    สมมติสตริงมีรูปแบบแบบ 1(0+)1 โดยที่ (0+) บ่งบอกถึงการเกิดของ 1 ติดต่อกันไม่ว่าง เราต้องหารูปแบบทั้งหมด รูปแบบอาจทับซ้อนกันได้ สตริงไม่จำเป็นต้องเป็นสตริงไบนารี อาจมีตัวเลขและตัวอักษรพิมพ์เล็กเท่านั้น สมมติสตริงเป็น 1101001 จะมีรูปแบบ 2 แบบ คือ 101 และ 1001 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้

  10. โปรแกรม C++ หาสามตัวเลข (Triplets) ในอาร์เรย์เรียงลำดับที่เป็นลำดับเรขาคณิต

    สมมติเรามีอาร์เรย์ที่เรียงลำดับแล้วมีจำนวนเต็มบวกที่ไม่ซ้ำกัน เราต้องหาสามตัวเลข (triplets) ทั้งหมดที่เป็นลำดับเรขาคณิต (Geometric Progression) ด้วยอัตราส่วนร่วมเป็นจำนวนเต็ม สมมติสมาชิกอาร์เรย์คือ [1, 2, 6, 10, 18, 54] สามตัวเลขคือ (2, 6, 18) และ (6, 18, 54) ซึ่งเป็นลำดับเรขาคณิต เพื่อแก้ปัญหานี้

  11. โปรแกรม C++ พิมพ์จำนวนเฉพาะในช่วงที่กำหนดด้วย C++ STL

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมพิมพ์จำนวนเฉพาะสำหรับช่วงตัวเลขที่กำหนดโดยใช้ C++ Standard Template Library ในนี้ เราจะได้รับตัวเลขสองตัว คือ a และ b งานคือพิมพ์จำนวนเฉพาะทั้งหมดในช่วงนี้ สำหรับนี้ เราจะใช้วิธี Sieve of Eratosthenes โดยรันเป็น subroutine พร้อมกันเราจะเก็บจำนวนเฉพาะทั้งหมดใน vector

  12. โปรแกรม C++ หาค่าที่มากกว่าและใกล้ที่สุดสำหรับทุกสมาชิกในอาร์เรย์

    ที่นี่เราจะดูวิธีหาค่าที่มากกว่าและใกล้ที่สุด (closest greater value) สำหรับทุกสมาชิกในอาร์เรย์ ถ้าสมาชิก x มีสมาชิกถัดไปที่มากกว่ามัน และอยู่ในอาร์เรย์ด้วย ค่านั้นจะเป็นค่าที่มากกว่าของสมาชิกนั้น ถ้าสมาชิกไม่มี ให้คืนค่า -1 สมมติสมาชิกอาร์เรย์คือ [10, 5, 11, 6, 20, 12] ค่าที่มากกว่าจะเป็น [11, 6, 1

  13. โปรแกรม C++ พิมพ์เส้นทางรากไปใบทุกเส้นทางโดยไม่ใช้ Recursion

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมพิมพ์เส้นทางจากโหนดรากไปยังโหนดใบทั้งหมดในต้นไม้ไบนารีที่กำหนด ตัวอย่าง สมมติเรามีต้นไม้ไบนารีดังนี้ ในต้นไม้ไบนารีนี้ มีโหนดใบ 4 โหนด ดังนั้นเราสามารถมีเส้นทาง 4 เส้นทางจากโหนดรากไปโหนดใบ เพื่อแก้ปัญหานี้ เราจะใช้วิธีแบบทำซ้ำ (iterative) ขณะทำ preorder traversal

  14. โปรแกรม C++ พิมพ์สตริงย่อยร่วมที่ยาวที่สุด (Longest Common Substring)

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมพิมพ์สตริงย่อยร่วมที่ยาวที่สุด สำหรับนี้เราจะได้รับสตริงสองสตริง คือ A และ B เราต้องพิมพ์สตริงย่อยร่วมที่ยาวที่สุดของสตริงอินพุต A และ B ทั้งสอง ตัวอย่าง ถ้าเราได้รับ HelloWorld และ world book สตริงย่อยร่วมที่ยาวที่สุดในกรณีนี้จะเป็น world ตัวอย่าง #include <io

  15. โปรแกรม C++ พิมพ์เส้นทางรากไปใบแรกที่สั้นที่สุดในต้นไม้ไบนารี

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมพิมพ์เส้นทางรากไปใบแรกที่สั้นที่สุดในต้นไม้ไบนารี ในที่นี้ เราจะได้รับต้นไม้ไบนารีที่มีค่าต่างกัน และเราต้องหาเส้นทางที่สั้นที่สุดจากโหนดรากไปโหนดใบในต้นไม้ไบนารีที่กำหนด เพื่อแก้ปัญหานี้ เราสามารถใช้ queue เพื่อท่องแบบระดับ (level order traversal) ในต้นไม้ไบนารีแล

  16. โปรแกรม C++ หาค่าที่ใกล้ที่สุดมากกว่า (Next Greater) สำหรับทุกสมาชิกในอาร์เรย์

    ที่นี่เราจะดูวิธีหาค่าที่ใกล้ที่สุดมากกว่า (closest greater value) สำหรับทุกสมาชิกในอาร์เรย์ ถ้าสมาชิก x มีสมาชิกถัดไปที่มากกว่ามัน และอยู่ในอาร์เรย์ด้วย ค่านั้นจะเป็นค่าที่มากกว่าของสมาชิกนั้น ถ้าสมาชิกไม่มี ให้คืนค่า -1 สมมติสมาชิกอาร์เรย์คือ [10, 5, 11, 6, 20, 12] ค่าที่มากกว่าจะเป็น [11, 6, 12,

  17. โปรแกรม C++ พิมพ์ขั้นตอนการท่องลึก (DFS) แบบขั้นตอน

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมพิมพ์ขั้นตอนของการท่องโดยใช้การค้นหาแบบลึก (Depth First Search) ในต้นไม้ไบนารีที่กำหนด สิ่งนี้จะรวมทุกขั้นตอนที่เกิดขึ้นในการค้นหาแบบลึก รวมถึงกระบวนการย้อนกลับ (backtracking) ด้วย ระหว่าง DFS เราจะท่องแต่ละโหนดและเก็บโหนดพาเรนต์และขอบที่ใช้ไว้พร้อมกัน ระหว่างการท่

  18. โปรแกรม C++ นับจำนวนหลักของตัวเลขที่หารตัวเลขนั้นลงตัว

    สมมติให้ตัวเลขหนึ่ง เราต้องนับจำนวนหลักของตัวเลขที่หารตัวเลขนั้นลงตัว สมมติตัวเลขคือ 1012 ผลลัพธ์คือ 3 มีหลัก 3 หลักคือ 1, 1 และ 2 ที่หาร 1012 ลงตัว เพื่อแก้ปัญหานี้ เราจะหาแต่ละหลักของตัวเลขโดยใช้การดำเนินการ modulus และตรวจสอบว่าตัวเลขหารด้วยหลักนั้นลงตัวหรือไม่ ถ้าหารลงตัว เพิ่มตัวนับ ถ้าหลักเป็

  19. โปรแกรม C++ หารากที่สามของตัวเลข

    ที่นี่เราจะดูวิธีหารากที่สามของตัวเลข สมมติตัวเลขคือ 27 รากที่สามคือ 3 เพื่อแก้ปัญหานี้ เราจะกำหนดตรรกะของตัวเองโดยไม่ใช้ฟังก์ชันไลบรารี เราจะใช้วิธีการค้นหาแบบทวิภาค (binary search) เราต้องทำตามขั้นตอนเหล่านี้เพื่อแก้ปัญหานี้ สมมติเรามีค่าเกณฑ์ (threshold) เช่น threshold = 0.000001 เริ่มค่าซ้าย (

  20. โปรแกรม C++ พิมพ์เส้นทางใบไปยังใบที่ยาวที่สุดในต้นไม้ไบนารี

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

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:91/301  20-คอมพิวเตอร์/Page Goto:1 85 86 87 88 89 90 91 92 93 94 95 96 97