Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. การนำ atoi() แบบเรียกซ้ำมาใช้งานใน C++

    ภาพรวม ได้รับสตริงที่มีตัวเลข เป้าหมายคือหาตัวเลขเทียบเท่าด้วยวิธี atoi() แบบเรียกซ้ำ (Recursive) int atoi(const char *str) แปลงสตริงเป็นจำนวนเต็ม ตัวอย่าง อินพุต − Str[] = 58325 เอาต์พุต − The Equivalent decimal is: 58325 คำอธิบาย − สตริงมีตัวเลขเทียบเท่า 58325 อินพุต − Str[] = 00010 เอาต์พุต − T

  2. โปรแกรมเรียกซ้ำตรวจสอบจำนวนเฉพาะใน C++

    ภาพรวม ได้รับจำนวนเต็มเป็นอินพุต เป้าหมายคือตรวจสอบว่า Num เป็นจำนวนเฉพาะ (Prime) หรือไม่ใช่จำนวนเฉพาะ (Non-prime) โดยใช้การเรียกซ้ำ วิธีตรวจสอบ: วนจาก i=2 ถึง i<=Num/2 หากมี i ใดหาร Num ลงตัว แสดงว่าไม่ใช่จำนวนเฉพาะ เพราะจำนวนเฉพาะหารได้เฉพาะ 1 และตัวมันเอง ตัวอย่าง อินพุต − Num = 32 เอาต์พุต − 32

  3. โปรแกรมเรียกซ้ำตรวจสอบเลข Palindrome ใน C++

    ภาพรวม ได้รับจำนวนเต็มเป็นอินพุต เป้าหมายคือตรวจสอบว่า Num เป็นเลข Palindrome (อ่านจากหน้าหลังได้เหมือนกัน) หรือไม่ โดยใช้การเรียกซ้ำ วิธีตรวจสอบ: กลับตัวเลขแล้วเปรียบเทียบกับตัวเลขเดิม หากเท่ากัน คือ Palindrome ตัวอย่าง อินพุต − Num = 34212 เอาต์พุต − 34212 is not a Palindrome! คำอธิบาย − กลับ 342

  4. โปรแกรมเรียกซ้ำพิมพ์สูตร GCD ของ n จำนวนเต็มใน C++

    ภาพรวม ได้รับจำนวนเต็มเป็นอินพุต เป้าหมายคือพิมพ์สูตร (Formula) ของ GCD ของ n จำนวนโดยใช้การเรียกซ้ำ (Recursion) เราทราบว่า GCD ของสามจำนวน a1, b1, c1 คือ gcd(a1, gcd(b1, c1)) เช่นเดียวกันสำหรับมากกว่าสามจำนวน สูตรคือ gcd(a1, gcd(b1, gcd(c1... gcd(y1, z1)))) ตัวอย่าง อินพุต − Num = 4 เอาต์พุต − For

  5. โปรแกรมเรียกซ้ำแปลงเลขฐานสองเป็นฐานสิบใน C++

    ภาพรวม ได้รับสตริงที่มีเลขฐานสอง (Binary) เป้าหมายคือหาเลขฐานสิบ (Decimal) เทียบเท่าโดยใช้วิธีการเรียกซ้ำ (Recursive) การแปลงฐานสองเป็นฐานสิบ: เดินจาก LSB (Least Significant Bit) ไป MSB คูณแต่ละบิตด้วย 2i โดย 0≤i<จำนวนหลัก บวกผลลัพธ์ก่อนหน้า ตัวอย่าง อินพุต − binStr[] = 110010 เอาต์พุต − Equivalent

  6. โปรแกรมเรียกซ้ำหาค่าต่ำสุดและสูงสุดในอาร์เรย์ด้วย C++

    ภาพรวม ได้รับอาร์เรย์จำนวนเต็ม Arr[] เป็นอินพุต เป้าหมายคือหาค่าสูงสุด (Maximum) และต่ำสุด (Minimum) ในอาร์เรย์โดยใช้วิธีการเรียกซ้ำ (Recursive) เนื่องจากใช้ Recursion จะเดินผ่านอาร์เรย์จนถึงความยาว=1 แล้วคืน A[0] เป็น Base case มิฉะนั้นเปรียบเทียบอิลิเมนต์ปัจจุบันกับค่าต่ำสุด/สูงสุดปัจจุบัน แล้วอัป

  7. กลับตัวเลขด้วย Stack ใน C++

    ภาพรวม ได้รับจำนวนเต็ม Num เป็นอินพุต เป้าหมายคือหาตัวเลขย้อนกลับ (Reverse) โดยใช้ Stack Stack คือโครงสร้างข้อมูลใน C++ ที่เก็บข้อมูลแบบ LIFO (Last In First Out) การดำเนินการหลัก: Declaration: stack<int> stck; top() คืนค่าอิลิเมนต์บนสุด pop() นำอิลิเมนต์บนสุดออก push(value) เพิ่มค่าลงบนสุด em

  8. Selection Sort แบบเรียกซ้ำใน C++

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

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

    ภาพรวม ได้รับตัวแปรจำนวนเต็ม Number เป็นอินพุต พิจารณาอาร์เรย์ที่มีอิลิเมนต์ 1 ถึง Number เรียงลำดับจากน้อยไปมาก หากดำเนินการโดยที่แต่ละขั้นตอนจะนำอิลิเมนต์ที่อยู่ตำแหน่งคี่ (Odd positions) ออก จะได้อาร์เรย์ใหม่ ทำซ้ำจนเหลืออิลิเมนต์เพียงตัวเดียว พิมพ์ตัวเลขตัวนั้น หมายเหตุ: ตำแหน่งเริ่มจาก 1 คือดัช

  10. ลดอาร์เรย์ให้เหลือจำนวนเต็มเดียวด้วยการดำเนินการที่กำหนดใน C++

    ภาพรวม ได้รับตัวแปรจำนวนเต็ม Number เป็นอินพุต พิจารณาอาร์เรย์ที่มีอิลิเมนต์ตั้งแต่ 1 ถึง Number เรียงลำดับไม่แน่นอน หากดำเนินการ Number-1 ครั้ง โดยแต่ละครั้ง: เลือกสองอิลิเมนต์ A และ B จากอาร์เรย์ นำ A และ B ออกจากอาร์เรย์ เพิ่มผลรวมของกำลังสองของ A และ B (A² + B²) กลับเข้าไปในอาร์เรย์ สุดท้ายจะเ

  11. ลดเศษส่วนให้อยู่ในรูปแบบต่ำสุดใน C++

    ภาพรวม ได้รับจำนวนเต็มสองจำนวน Num1 และ Num2 สามารถแสดงเป็นเศษส่วน Num1/Num2 เป้าหมายคือลดเศษส่วนนี้ให้อยู่ในรูปแบบต่ำสุด (Lowest Terms) ใช้ GCD หาตัวหารร่วมมาก คำนวณ Greatest Common Divisor (GCD) ของทั้งสองจำนวน หารทั้งสองจำนวนด้วย GCD นั้น ตั้งค่าทั้งสองตัวแปรเป็นผลหาร เศษส่วนต่ำสุดจะเป็น Num1/N

  12. ลดตัวเลขให้เหลือ 1 ด้วยการดำเนินการที่กำหนดใน C++

    ภาพรวม ได้รับจำนวนเต็ม Number เป็นอินพุต เป้าหมายคือหาจำนวนขั้นตอน (Operations) น้อยที่สุดที่ต้องใช้เพื่อลด Number ให้เหลือ 1 การดำเนินการที่อนุญาต: หาก Number เป็นเลขคู่ ให้หารด้วย 2 หาก Number เป็นเลขคี่ ให้บวก 1 หรือลบ 1 ตัวอย่าง อินพุต − Number = 28 เอาต์พุต − Minimum steps to reduce 28 to 1:

  13. การเรียงลำดับเมทริกซ์แบบแถวต่อแถวเทียบกับแบบคอลัมน์ต่อคอลัมน์ใน C++

    ภาพรวม เมทริกซ์สามารถเรียงลำดับได้สองวิธี: แบบแถวต่อแถว (Row-major) เข้าถึงแต่ละแถวตามลำดับ ตัวอิลิเมนต์ในแถวจากดัชนี 0 ถึงดัชนีสุดท้าย ส่วนแบบคอลัมน์ต่อคอลัมน์ (Column-major) เข้าถึงจากคอลัมน์แรกถึงคอลัมน์สุดท้ายตามลำดับ ในเมทริกซ์ 2D M[i][j] ดัชนี i แทนแถว j แทนคอลัมน์ สำหรับ Row-major เริ่มจาก i=

  14. อิลิเมนต์ร่วมกันแถวต่อแถวในเส้นทแยงมุมหลักและรองของเมทริกซ์สี่เหลี่ยมจัตุรัสใน C++

    ภาพรวม ได้รับเมทริกซ์สี่เหลี่ยมจัตุรัส 2D เป็นอินพุต เป้าหมายคือหาอิลิเมนต์ที่ซ้ำกันในทั้งเส้นทแยงมุมหลัก (Primary Diagonal) และเส้นทแยงมุมรอง (Secondary Diagonal) ตัวอย่างเมทริกซ์: 1 2 3 2 2 4 1 4 7 เส้นทแยงมุมหลักคือ 1, 2, 7 เส้นทแยงมุมรองคือ 3, 2, 1 อิลิเมนต์ร่วมคือ 2 จะมีอิลิเมนต์ร่วมอย่างน้อย 1

  15. โปรแกรมเรียกซ้ำค้นหาแบบเส้นตรงในอาร์เรย์ด้วย C++

    ภาพรวม ได้รับอาร์เรย์จำนวนเต็ม Arr[] ที่มีตัวเลขเรียงลำดับไม่แน่นอน เป้าหมายคือหาตัวเลข val ที่ต้องการในอาร์เรย์โดยใช้การค้นหาแบบเรียกซ้ำ (Recursive Search) หากไม่พบ val ใน Arr[] ให้คืนค่า -1 พิมพ์ดัชนีหากพบ ตัวอย่าง อินพุต − Arr[] = {11, 43, 24, 50, 93, 26, 78}, val = 26 เอาต์พุต − 26 found at ind

  16. การแทรกและเรียงลำดับ Linked List แบบเรียกซ้ำใน C++

    ภาพรวม ได้รับค่าจำนวนเต็มที่จะนำมาสร้าง Linked List งานคือการแทรกและเรียงลำดับ (Traverse) Singly Linked List โดยใช้วิธีการเรียกซ้ำ (Recursive) การแทรกโหนดที่ท้ายแบบเรียกซ้ำ หาก head เป็น NULL → แทรกโหนดที่ head มิฉะนั้น แทรกที่ head→next การเรียงลำดับโหนดแบบเรียกซ้ำ หาก head เป็น NULL → จบการทำ

  17. วิธีการเรียกซ้ำสำหรับแบ่ง Linked List สลับกันใน C++

    ภาพรวม เมื่อได้รับ Singly Linked List เป็นอินพุต เป้าหมายคือแบ่งลิสต์ออกเป็นสอง Singly Linked List ที่มีโหนดสลับกันจากลิสต์เดิม ตัวอย่าง: ลิสต์ a → b → c → d → e → f จะแบ่งเป็น a → c → e และ b → d → f ใช้สองพอยน์เตอร์ N1 และ N1 ชี้ที่หัวและหัว→next ตามลำดับ จากนั้นเลื่อนทั้งคู่ไปที่ next ของ next เพ

  18. วิธีการเรียกซ้ำเพื่อหาโหนดที่ N จากท้ายใน Linked List ด้วย C++

    ภาพรวม เมื่อได้รับ Singly Linked List และจำนวนเต็มบวก N เป็นอินพุต เป้าหมายคือการหาโหนดที่ N จากท้ายของลิสต์โดยใช้การเรียกซ้ำ (Recursion) ตัวอย่าง: หากลิสต์มีโหนด a → b → c → d → e → f และ N = 4 โหนดที่ 4 จากท้ายจะเป็น c วิธีการคือเดินไปจนถึงโหนดสุดท้าย แล้วขณะกลับจากการเรียกซ้ำ (Backtracking) เพิ่ม

  19. โปรแกรมแบบเรียกซ้ำสำหรับแทรกเครื่องหมายดอกจันระหว่างตัวอักษรซ้ำกันใน C++

    ภาพรวม เมื่อได้รับสตริง str1 เป็นอินพุต เป้าหมายคือการแทรกเครื่องหมาย * ระหว่างคู่ของตัวอักษรที่เหมือนกันในสตริงอินพุต และส่งคืนสตริงผลลัพธ์โดยใช้วิธีการเรียกซ้ำ (Recursive) ตัวอย่าง: หากอินพุตคือ wellness ผลลัพธ์จะเป็น wel*lnes*s ตัวอย่าง อินพุต − str1 = happiness เอาต์พุต − สตริงหลังเพิ่ม * : hap

  20. สี่เหลี่ยมผืนผ้าที่มีความต่างระหว่างความยาวและความกว้างน้อยที่สุดใน C++

    ภาพรวม เมื่อได้รับพื้นที่ของสี่เหลี่ยมผืนผ้าเป็นอินพุต เป้าหมายคือการหาด้านของสี่เหลี่ยมผืนผ้าที่ทำให้ความต่างระหว่างความยาวและความกว้างมีค่าน้อยที่สุด พื้นที่สี่เหลี่ยมผืนผ้า = ความยาว × ความกว้าง ตัวอย่าง อินพุต − พื้นที่ = 100 เอาต์พุต − ด้านของสี่เหลี่ยมผืนผ้าที่มีความต่างน้อยที่สุด: ความยาว =

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:275/301  20-คอมพิวเตอร์/Page Goto:1 269 270 271 272 273 274 275 276 277 278 279 280 281