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

    ในส่วนนี้ เราจะดูวิธีที่เราสามารถหาผลรวมของตัวประกอบเฉพาะคู่ (Even Prime Factors) ของจำนวนได้อย่างมีประสิทธิภาพ มีจำนวนเช่น n = 480 เราต้องหาตัวประกอบทั้งหมด ตัวประกอบเฉพาะของ 480 คือ 2, 2, 2, 2, 2, 3, 5 ผลรวมของตัวประกอบคู่ทั้งหมดคือ 2+2+2+2+2 = 10 เพื่อแก้ปัญหานี้ เราต้องปฏิบัติตามกฎนี้ - เมื่อจ

  2. หาผลรวมของตัวประกอบคี่ของจำนวนด้วย C++

    ในส่วนนี้ เราจะดูวิธีที่เราสามารถหาผลรวมของตัวประกอบเฉพาะคี่ (Odd Prime Factors) ของจำนวนได้อย่างมีประสิทธิภาพ มีจำนวนเช่น n = 1092 เราต้องหาตัวประกอบทั้งหมด ตัวประกอบเฉพาะของ 1092 คือ 2, 2, 3, 7, 13 ผลรวมของตัวประกอบคี่ทั้งหมดคือ 3+7+13 = 23 เพื่อแก้ปัญหานี้ เราต้องปฏิบัติตามกฎนี้ - เมื่อจำนวนหาร

  3. หาแฟกทอเรียลของจำนวนใน PL/SQL ด้วย C++

    ในส่วนนี้ เราจะดูวิธีหาแฟกทอเรียลของจำนวนโดยใช้ PL/SQL ในโค้ด PL/SQL บางกลุ่มคำสั่งจะจัดอยู่ในบล็อกของการประกาศข้อความที่เกี่ยวข้อง แฟกทอเรียลของจำนวนคือการคูณจำนวนเต็มทั้งหมดจาก 1 ถึง n โดยที่ n คือจำนวนที่กำหนด ดังนั้น n! = n * (n - 1) * (n - 2) * ... * 2 * 1 ตัวอย่าง (PL/SQL) DECLARE fact n

  4. หาตัวอักษรที่ซ้ำแรกในสตริงด้วย C++

    สมมติว่าเรามีสตริง เราต้องหาตัวอักษรตัวแรกที่ซ้ำกัน ดังนั้นถ้าสตริงคือ Hello Friends ตัวอักษรที่ซ้ำแรกจะเป็น l เนื่องจากมี l สองตัวติดกัน เพื่อแก้ปัญหานี้ เราจะใช้เทคนิคแฮชชิง (Hashing) สร้างตารางแฮชหนึ่ง ตรวจสอบตัวอักษรทีละตัว ถ้าตัวอักษรยังไม่มี ให้ใส่ในตารางแฮช ถ้ามีอยู่แล้ว ให้คืนค่าตัวอักษรนั้

  5. หาความถี่ของหลักตัวเลขในจำนวนด้วย C++

    ที่นี่เราจะดูวิธีหาความถี่ของหลักตัวเลข (Digit) ในจำนวนหนึ่ง สมมติจำนวนเป็น 12452321 ตัวเลข D = 2 แล้วความถี่คือ 3 เพื่อแก้ปัญหานี้ เราจะนำหลักสุดท้ายของจำนวนมา ตรวจสอบว่ามันเท่ากับ d หรือไม่ ถ้าใช่ ให้เพิ่มตัวนับ แล้วลดจำนวนลงโดยการหาร 10 กระบวนการนี้จะทำต่อไปจนกว่าจะหมดจำนวน ตัวอย่างโค้ด #includ

  6. หาความถี่ของตัวเลขในอาร์เรย์ด้วย C++

    สมมติว่าเรามีอาร์เรย์ มี n สมาชิกที่แตกต่างกัน เราต้องตรวจสอบความถี่ (Frequency) ของสมาชิกหนึ่งในอาร์เรย์ สมมติ A = [5, 12, 26, 5, 3, 4, 15, 5, 8, 4] ถ้าเราพยายามหาความถี่ของ 5 จะได้ 3 เพื่อแก้ปัญหานี้ เราจะสแกนอาร์เรย์จากซ้าย ถ้าสมาชิกเท่ากับตัวเลขที่กำหนด ให้เพิ่มตัวนับ ไม่เช่นนั้น ไปสมาชิกถัดไป

  7. หาหลักหน่วยของผลรวมแฟกทอเรียล N ด้วย C++

    5 หลักหน่วยจะเป็น 0 ดังนั้นหลังจาก 5 จะไม่มีส่วนทำให้หลักหน่วยเปลี่ยน สำหรับ N = 4 ขึ้นไป จะเป็น 3 เราสามารถสร้างตารางสำหรับหลักหน่วย และจะนำไปใช้ในโปรแกรม ตัวอย่างโค้ด #include <iostream> #include <cmath> using namespace std; double getUnitPlace(int n) { int placeVal[5] = {-1, 1,

  8. หาค่า ln(N!) โดยใช้ Recursion ด้วย C++

    สมมติว่าเรามีจำนวน N ภารกิจของเราคือหา ln(N!) โดยใช้การเรียกตัวเอง (Recursion) ln() คือลอการิทึมฐาน e เพื่อแก้ปัญหานี้ เราสามารถใช้สูตรนี้ - $$\ln(N!) = \ln(N \times (N-1) \times (N-2) \times \dots \times 2 \times 1) = \ln(N) + \ln(N-1) + \dots + \ln(1)$$ ตัวอย่างโค้ด #include <iostream> #in

  9. จำนวนเฉพาะเมอร์เซน (Mersenne Prime) ใน C++

    คำอธิบาย ในคณิตศาสตร์ จำนวนเฉพาะเมอร์เซน (Mersenne Prime) คือจำนวนเฉพาะที่น้อยกว่ากำลังของสองหนึ่งหน่วย นั่นคือ จำนวนเฉพาะที่มีรูปแบบ Mn = 2n - 1 สำหรับจำนวนเต็ม n บางจำนวน เขียนโปรแกรม C++ เพื่อพิมพ์จำนวนเฉพาะเมอร์เซนทั้งหมดที่น้อยกว่าจำนวนเต็มบวก n ที่รับเข้ามา เลขชี้กำลัง n ที่ให้จำนวนเฉพาะเมอร

  10. Mid-Square Hashing ใน C++

    ข้อความโจทย์ วิธี Mid-Square เป็นวิธีหนึ่งในการสร้างเลขสุ่มแบบปลอม (Pseudorandom Numbers) วิธีนี้ đượcคิดค้นโดย John von Neumann และอธิบายในงานประชุมในปี 1949 ในเทคนิคนี้ จะนำค่า Seed เริ่มต้นมา ยกกำลังสอง จากนั้นนำหลักกลาง (Middle Digits) บางส่วนมา และหลักที่นำออกมาเหล่านี้จะสร้างตัวเลขที่ถูกนำมา

  11. รวมอาร์เรย์ที่ไม่ได้จัดเรียงสองอาร์เรย์เป็นลำดับที่จัดเรียงแล้วด้วย C++

    ข้อความโจทย์ เขียนฟังก์ชันที่รับอาร์เรย์ที่ไม่ได้จัดเรียงสองอาร์เรย์ และรวมพวกมันเป็นอาร์เรย์ใหม่ในลำดับที่จัดเรียงแล้ว arr1[] = {10, 5, 7, 2} arr2[] = {4, 17, 9, 3} result[] = {2, 3, 4, 5, 7, 9, 10, 17} อัลกอริทึม 1. รวมอาร์เรย์ที่ไม่ได้จัดเรียงสองอาร์เรย์เข้าในอาร์เรย์ใหม่ 2. จัดเรียงอาร์เรย์ที่

  12. รวมสมาชิกของอาร์เรย์สองอาร์เรย์สลับกันในอาร์เรย์ที่สามด้วย C++

    ข้อความโจทย์ กำหนดอาร์เรย์สองอาร์เรย์ เราต้องรวมอาร์เรย์ทั้งสองอย่างที่อาร์เรย์ที่รวมแล้วมีสมาชิกสลับกันของอาร์เรย์แรกและอาร์เรย์ที่สอง หากอาร์เรย์ใดอาร์เรย์หนึ่งมีสมาชิกเหลือ ให้ต่อท้ายที่อาร์เรย์ที่รวมแล้ว arr1[] = {10, 20, 30, 40} arr2[] = {-10, -20, -30, -40} result[] = {10, -10, 20, -20, 30, -

  13. รวม Linked List ที่จัดเรียงแล้วสองลิสต์ด้วย C++

    ข้อความโจทย์ กำหนด Singly Linked List ที่จัดเรียงแล้ว 2 ลิสต์ เขียนฟังก์ชันเพื่อรวม Linked List ที่จัดเรียงแล้วทั้งสอง List1: 10→15→17→20 List2: 5→9→13→19 Result: 5→9→10→13→15→17→19→20 อัลกอริทึม data data data ลงในลิสต์ใหม่ และเพิ่ม pointer list2 2. ทำซ้ำขั้นตอนจนกว่าทั้งสองลิสต์จะหมด 3. คืนค่าลิ

  14. รวมอาร์เรย์ที่จัดเรียงแล้วสองอาร์เรย์ด้วย C++

    ข้อความโจทย์ กำหนดอาร์เรย์ที่จัดเรียงแล้ว 2 อาร์เรย์ เขียนฟังก์ชันเพื่อรวมอาร์เรย์ที่จัดเรียงแล้วทั้งสองเป็นอาร์เรย์เดียว Arr1[] = {10, 15, 17, 20} Arr2[] = {5, 9, 13, 19} Result[] = {5, 9, 10, 13, 15, 17, 19, 20} อัลกอริทึม 1. ท่องผ่านทั้งสองอาร์เรย์ 1.1. ถ้า arr1[i] < arr2[j] 1.1.1. เ

  15. รวม Max Heap สองตัวเป็นหนึ่งเดียวด้วย C++

    ข้อความโจทย์ กำหนด Max Heap สองตัวในรูปแบบอาร์เรย์ ให้รวมเข้าด้วยกันเป็น Max Heap เดียว Heap1[] = {20, 17, 15, 10} Heap2[] = {19, 13, 7} Result[] = {20, 19, 15, 13, 17, 7, 10} อัลกอริทึม 1. สร้างอาร์เรย์เพื่อเก็บผลลัพธ์ 2. คัดลอกอาร์เรย์ที่กำหนดทั้งสองเข้าไปในอาร์เรย์ผลลัพธ์ทีละอัน 3. สร้าง Heap (

  16. Merge Sort สำหรับ Linked List ด้วย C++

    ข้อความโจทย์ กำหนด Linked List ให้จัดเรียง (Sort) โดยใช้อัลกอริทึม Merge Sort List: 10→20→8→17→5→13→4 Sorted list: 4→5→8→10→13→17→20 อัลกอริทึม 1. ถ้า head เป็น NULL หรือลิสต์มีเพียงหนึ่งสมาชิก ให้คืนลิสต์ 2. สร้างสองลิสต์โดยแบ่งลิสต์เดิมเป็น 2 ส่วน 3. จัดเรียงส่วนแรกและส่วนที่สองของลิสต์ 4. รวม (

  17. Merge Sort สำหรับ Doubly Linked List ด้วย C++

    ข้อความโจทย์ กำหนด Doubly Linked List ให้จัดเรียง (Sort) โดยใช้อัลกอริทึม Merge Sort List: 10→20→8→17→5→13→4 Sorted list: 4→5→8→10→13→17→20 อัลกอริทึม 1. ถ้า head เป็น NULL หรือลิสต์มีเพียงหนึ่งสมาชิก ให้คืนลิสต์ 2. สร้างสองลิสต์โดยแบ่งลิสต์เดิมเป็น 2 ส่วน 3. จัดเรียงส่วนแรกและส่วนที่สองของลิสต์ 4

  18. รวมช่วงเวลาที่ทับซ้อนกัน (Merge Overlapping Intervals) ด้วย C++

    ข้อความโจทย์ กำหนดชุดของช่วงเวลา (Time Intervals) ในลำดับใดก็ได้ ให้รวมช่วงเวลาที่ทับซ้อนกันทั้งหมดเป็นช่วงเดียว และแสดงผลลัพธ์ที่ควรมีเฉพาะช่วงเวลาที่ไม่ทับซ้อนกัน (Mutually Exclusive Intervals) ชุดช่วงเวลาที่กำหนดคือ {{12, 14}, {11, 13}, {20, 22}, {21, 23}} แล้ว ช่วง {12, 14} และ {11, 13} ทับซ้อ

  19. จำนวนการลบและแทรกน้อยที่สุดเพื่อแปลงสตริงหนึ่งเป็นอีกสตริงหนึ่งด้วย C++

    คำอธิบาย กำหนดสตริงสองตัว str1 และ str2 ขนาด m และ n ตามลำดับ งานคือลบและแทรกจำนวนตัวอักษรน้อยที่สุดจาก/ใน str1 เพื่อแปลงมันเป็น str2 Str1 = tutorialspoint Str2 = tutorials เพื่อแปลง str1 เป็น str2 เราต้องลบ 5 ตัวอักษร คือ point จาก str1 อัลกอริทึม 1. หาลำดับย่อยร่วมที่ยาวที่สุด (Longest Common Su

  20. จำนวนการลบน้อยที่สุดเพื่อทำให้สตริงเป็นพาลินโดรมด้วย C++

    ข้อความโจทย์ กำหนดสตริงขนาด n งานคือลบจำนวนตัวอักษรน้อยที่สุดเพื่อทำให้สตริงเป็นพาลินโดรม (Palindrome) ถ้าสตริงที่กำหนดคือ abcda เราสามารถลบตัวอักษรใดก็ได้ 2 ตัว ยกเว้นตัวแรกและตัวสุดท้าย เพื่อทำให้มันเป็นพาลินโดรม ถ้าลบตัวอักษร b และ c แล้ว ada เป็นพาลินโดรม ถ้าลบตัวอักษร c และ d แล้ว aba เป็นพาล

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