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

    พิจารณาว่าเรามีรายการสตริง (List of Strings) รายการนั้นมีสตริงซ้ำบ้าง เราต้องตรวจสอบว่าสตริงไหนเกิดขึ้นมากกว่าหนึ่งครั้ง สมมติรายการสตริงเป็น [Hello, Kite, Hello, C++, Tom, C++] ที่นี่เราจะใช้เทคนิคแฮชชิง (Hashing) สร้างตารางแฮชว่าง แล้วท่องสตริงแต่ละตัว และสำหรับแต่ละสตริง s ถ้ามีอยู่ในแฮชแล้ว ให้

  2. หาพื้นที่สี่เหลี่ยมขนานหมากรุกถ้าทราบเวกเตอร์สองด้านที่ติดกันด้วย C++

    สมมติว่าเรามีเวกเตอร์สองตัวสำหรับสองด้านที่ติดกันของสี่เหลี่ยมขนานหมากรุก (Parallelogram) ในรูปแบบ $x\hat{i}+y\hat{j}+z\hat{k}$ ภารกิจของเราคือหาพื้นที่ของสี่เหลี่ยมขนานหมากรุก พื้นที่ของสี่เหลี่ยมขนานหมากรุกคือขนาด (Magnitude) ของผลคูณไขว้ (Cross Product) ของสองเวกเตอร์ (|A × B|) $$|\vec{A}\times\

  3. หาพื้นที่สามเหลี่ยมถ้าทราบเวกเตอร์สองด้านที่ติดกันด้วย C++

    สมมติว่าเรามีเวกเตอร์สองตัวสำหรับสองด้านที่ติดกันของสามเหลี่ยมในรูปแบบ $x\hat{i}+y\hat{j}+z\hat{k}$ ภารกิจของเราคือหาพื้นที่ของสามเหลี่ยม พื้นที่ของสามเหลี่ยมคือขนาด (Magnitude) ของผลคูณไขว้ (Cross Product) ของสองเวกเตอร์ (|A x B|) $$\frac{1}{2}|\vec{A}\times\vec{B}| = \frac{1}{2}\sqrt{(y_1 z_2 - y

  4. หาค่า Ceil ของ a/b โดยไม่ใช้ฟังก์ชัน ceil() ใน C++

    ที่นี่เราจะดูวิธีหาค่า Ceiling (ปัดขึ้น) ของ a/b โดยไม่ใช้ฟังก์ชัน ceil() ถ้า a = 5, b = 4 แล้ว (a/b) = 5/4 ceiling(5/4) = 2 เพื่อแก้ปัญหานี้ เราสามารถทำตามสูตรง่ายๆ นี้ - $$ceil(a,b) = \frac{a+b-1}{b}$$ ตัวอย่างโค้ด #include <iostream> using namespace std; int ceiling(int a, int b) { r

  5. หาคอลัมน์ที่มีผลรวมสูงสุดในเมทริกซ์ด้วย C++

    สมมติว่าเรามีเมทริกซ์ขนาด M x N เราต้องหาคอลัมน์ที่มีผลรวมสูงสุด (Maximum Sum) ในโปรแกรมนี้ เราจะไม่ใช้วิธีอะไรที่มีเทคนิคพิเศษ เราจะท่องอาร์เรย์แบบคอลัมน์ (Column-wise) แล้วหาผลรวมของแต่ละคอลัมน์ ถ้าผลรวมเป็นค่าสูงสุด ให้พิมพ์ผลรวมและดัชนีคอลัมน์ ตัวอย่างโค้ด maxSum) { maxSum = sum;

  6. หาความต่างระหว่างผลรวมของเส้นทแยงมุมสองเส้นในเมทริกซ์ด้วย C++

    ที่นี่เราจะดูวิธีหาความต่างระหว่างผลรวมของเส้นทแยงมุมสองเส้น (Diagonals) ของเมทริกซ์ที่กำหนด สมมติว่าเรามีเมทริกซ์ขนาด N x N เราต้องหาผลรวมของเส้นทแยงมุมหลัก (Primary) และเส้นทแยงมุมรอง (Secondary) แล้วหาความต่างของพวกมัน เพื่อหาเส้นทแยงมุมหลัก เรารู้ว่าดัชนีแถวและดัชนีคอลัมน์เพิ่มขึ้นพร้อมกัน สำหรั

  7. หาค่า Floor และ Ceil ในอาร์เรย์ที่ไม่ได้จัดเรียงด้วย C++

    ที่นี่เราจะดูวิธีหา Floor และ Ceiling ในอาร์เรย์ที่ไม่ได้จัดเรียง (Unsorted Array) ค่า Floor คือสมาชิกที่ใหญ่ที่สุดซึ่งน้อยกว่าหรือเท่ากับ x และค่า Ceiling คือค่าที่น้อยที่สุดซึ่งมากกว่า x ถ้าอาร์เรย์ A = [5, 6, 8, 9, 6, 5, 5, 6] และ x คือ 7 ค่า Floor คือ 6 และค่า Ceiling คือ 8 เพื่อแก้ปัญหานี้ เรา

  8. หาค่าเฉลี่ยฮาร์โมนิก (Harmonic Mean) จากค่าเฉลี่ยเลขคณิตและเรขาคณิตด้วย C++

    ที่นี่เราจะดูวิธีหาค่าเฉลี่ยฮาร์โมนิก (Harmonic Mean) โดยใช้ค่าเฉลี่ยเลขคณิต (Arithmetic Mean) และค่าเฉลี่ยเรขาคณิต (Geometric Mean) สูตรสำหรับค่าเฉลี่ยทั้งสามเป็นดังนี้ - ค่าเฉลี่ยเลขคณิต (AM) = (a + b) / 2 ค่าเฉลี่ยเรขาคณิต (GM) = √(a * b) ค่าเฉลี่ยฮาร์โมนิก (HM) = 2ab / (a + b) ค่าเฉลี่ยฮาร์โ

  9. ตรวจสอบว่าตัวเลขอยู่ในลำดับเลขคณิต (AP) ที่กำหนดพจน์แรกและความต่างหรือไม่ด้วย C++

    สมมติว่าเรามีพจน์แรกของลำดับเลขคณิต (AP) และความต่างร่วม (Common Difference) เราต้องตรวจสอบว่าตัวเลข n ที่กำหนดเป็นส่วนหนึ่งของ AP หรือไม่ ถ้าพจน์แรก a = 1 ความต่าง d = 3 และพจน์ x = 7 จะถูกตรวจสอบ คำตอบคือใช่ เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - ถ้า d เป็น 0 และ a = x ให้คืนค่า true มิฉะ

  10. ตรวจสอบว่าสี่เหลี่ยมสองรูปทับซ้อนกันหรือไม่ด้วย C++

    เราทราบว่าสี่เหลี่ยมผืนผ้าสามารถแทนได้ด้วยสองพิกัด คือ มุมซ้ายบน (Top-left) และมุมขวาล่าง (Bottom-right) สมมติมีสี่เหลี่ยมสองรูป เราต้องตรวจสอบว่าสองรูปนี้ทับซ้อนกันหรือไม่ มีจุดพิกัดสี่จุด (l1, r1) และ (l2, r2) l1 คือมุมซ้ายบนของสี่เหลี่ยมแรก r1 คือมุมขวาล่างของสี่เหลี่ยมแรก l2 คือมุมซ้ายบนของสี่

  11. หาตัวประกอบเฉพาะมากที่สุดของจำนวนด้วย C++

    พิจารณาว่าเรามีสมาชิก x เราต้องหาตัวประกอบเฉพาะมากที่สุด (Largest Prime Factor) ของ x ถ้าค่าของ x คือ 6 ตัวประกอบเฉพาะมากที่สุดคือ 3 เพื่อแก้ปัญหานี้ เราจะแยกตัวประกอบตัวเลขโดยการหารด้วยตัวหารของจำนวน และติดตามตัวประกอบเฉพาะสูงสุด ตัวอย่างโค้ด 2) maxPF = n; return maxPF; } int main()

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

    ที่นี่เราจะดูวิธีหาหลักสองหลักสุดท้าย (Last Two Digits) คือ หลักหน่วยและหลักสิบ ของผลรวมแฟกทอเรียล N แฟกทอเรียล ดังนั้นถ้า N = 4 จะเป็น 1! + 2! + 3! + 4! = 33 หลักหน่วยคือ 3 และหลักสิบคือ 3 ผลลัพธ์จะเป็น 33 10 หลักสิบจะคงเป็น 0 สำหรับ N = 10 ขึ้นไป จะเป็น 00 เราสามารถสร้างตารางสำหรับ N = 1 ถึง 10

  13. หาค่าสูงสุดในอาร์เรย์ Struct ด้วย C++

    ที่นี่เราจะดูวิธีหาค่าสูงสุด (Max) ในอาร์เรย์ Struct สมมติมี Struct ด้านล่างนี้ กำหนด เราต้องหาสมาชิกสูงสุดของอาร์เรย์ประเภท Struct นั้น struct Height { int feet, inch; }; แนวคิดง่ายมาก เราจะท่องอาร์เรย์ และติดตามค่าสูงสุดของสมาชิกอาร์เรย์ในหน่วยนิ้ว โดยค่าคือ 12*feet + inch ตัวอย่างโค้ด hei

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

    ที่นี่เราจะดูวิธีหาผลรวมตัวประกอบ (Sum of Factors) น้อยที่สุดของจำนวนที่กำหนด สมมติจำนวนคือ 12 เราสามารถแยกตัวประกอบได้หลายวิธี - 12 = 12 * 1 (12 + 1 = 13) 12 = 2 * 6 (2 + 6 = 8) 12 = 3 * 4 (3 + 4 = 7) 12 = 2 * 2 * 3 (2 + 2 + 3 = 7) ผลรวมน้อยที่สุดคือ 7 เราจะรับจำนวน และพยายามหาผลรวมตัวประกอบน้อ

  15. หาค่าเฉลี่ยเลขคณิต (Arithmetic Means) N ค่า ระหว่าง A และ B ด้วย C++

    สมมติว่าเรามีจำนวนเต็มสามจำนวน A, B และ N เราต้องหาค่าเฉลี่ยเลขคณิต N ค่าระหว่าง A และ B ถ้า A = 20, B = 32, และ N = 5 ผลลัพธ์จะเป็น 22, 24, 26, 28, 30 งานนี้ง่าย เราต้องแทรก N จำนวนในลำดับเลขคณิต (Arithmetic Progression) ที่ A และ B เป็นพจน์แรกและพจน์สุดท้ายของลำดับนั้น สมมติ A1, A2, ..., An เป็นค

  16. หาค่าเฉลี่ยเรขาคณิต (Geometric Means) N ค่า ระหว่าง A และ B ด้วย C++

    สมมติว่าเรามีจำนวนเต็มสามจำนวน A, B และ N เราต้องหาค่าเฉลี่ยเรขาคณิต N ค่าระหว่าง A และ B ถ้า A = 2, B = 32, และ N = 3 ผลลัพธ์จะเป็น 4, 8, 16 งานนี้ง่าย เราต้องแทรก N จำนวนในลำดับเรขาคณิต (Geometric Progression) ที่ A และ B เป็นพจน์แรกและพจน์สุดท้ายของลำดับนั้น สมมติ G1, G2, ..., Gn เป็นค่าเฉลี่ยเร

  17. หาจำนวนคู่เวทมนต์ (Magical Pairs) ของสตริงความยาว L ใน C++

    สมมติว่าเรามีสตริงสองตัว str1 และ str2 เราต้องหาจำนวนคู่เวทมนต์ (Magical Pairs) ของความยาว L สองสตริงจะเป็นคู่เวทมนต์หากสำหรับดัชนีทุก i str1[i] < str2[i] เราต้องนับจำนวนคู่ เนื่องจากจำนวนมากมาย ให้คืนคำตอบโดยใช้ modulo 10^9 สตริงจะมีเฉพาะตัวอักษรพิมพ์เล็ก วิธีการง่ายๆ คือ ถ้าความยาว L = 1 และดัชนี

  18. หาจำนวนคู่ในอาร์เรย์ที่ XOR เท่ากับ 0 ด้วย C++

    สมมติว่าเรามีอาร์เรย์ n สมาชิก เราต้องหาจำนวนคู่ในอาร์เรย์ที่ XOR จะเป็น 0 คู่ (x, y) ที่ XOR เป็น 0 แล้ว x = y เพื่อแก้ปัญหานี้ เราสามารถจัดเรียงอาร์เรย์ แล้วถ้าสมาชิกสองตัวติดกันเท่ากัน ให้เพิ่มตัวนับ ถ้าสมาชิกทั้งหมดเท่ากัน ตัวนับตัวสุดท้ายอาจไม่นับ ในกรณีนั้น เราจะตรวจสอบว่าสมาชิกสุดท้ายและตัวแร

  19. หาตัวอักษรเพิ่มเติมหนึ่งตัวในสตริงด้วย C++

    สมมติว่าเรามีสตริงสองตัว S และ T ความยาวของ S คือ n และความยาวของ T คือ n + 1 T จะเก็บตัวอักษรทั้งหมดที่มีอยู่ใน S แต่จะมีตัวอักษรเพิ่มเติมอีกหนึ่งตัว ภารกิจของเราคือหาตัวอักษรเพิ่มเติมนั้นโดยใช้วิธีที่มีประสิทธิภาพ เพื่อแก้ปัญหานี้ เราจะใช้ตารางแฮชว่างหนึ่ง ใส่ตัวอักษรทั้งหมดของสตริงที่สอง แล้วลบต

  20. หาอาร์เรย์ต้นฉบับจากอาร์เรย์ที่เข้ารหัส (อาร์เรย์ของผลรวมสมาชิกอื่น) ด้วย C++

    ลองพิจารณาว่าเรามีอาร์เรย์ของจำนวนเต็ม อาร์เรย์นั้นคืออาร์เรย์ที่เข้ารหัส (Encrypted Array) สมมติอาร์เรย์คือ A = [10, 14, 12, 13, 11] อาร์เรย์ต้นฉบับคือ B = [5, 1, 3, 2, 4] เราสามารถเห็นได้ว่าสมาชิกแต่ละตัวที่ดัชนี i ของ A ปฏิบัติตามกฎนี้: A[i] = ผลรวมของสมาชิกทั้งหมดที่ตำแหน่ง j ใน B[j] โดยที่ i ≠

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