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

    บทนำ กำหนดอาร์เรย์ N สมาชิก ต้องการลบสมาชิกออกจากอาร์เรย์โดยปฏิบัติตามกฎ: เลือกสองจำนวนใดๆ ลบตัวที่มากกว่า ต้นทุนเท่ากับตัวที่น้อยกว่า ลบทีละหนึ่งจนหมด ต้องการต้นทุนรวมน้อยที่สุด ตัวอย่าง: อาร์เรย์ {4, 2, 5} → เลือก 4,2 ลบ 4 ต้นทุน 2 → เหลือ {2,5} → เลือก 2,5 ลบ 5 ต้นทุน 2 → รวมต้นทุน 4 แนวคิด เน

  2. หา LCM และ GCD น้อยที่สุดที่เป็นไปได้ในทุก sub-array ใน C++

    บทนำ กำหนดอาร์เรย์ arr ขนาด N ประกอบด้วยจำนวนบวก ต้องการหาค่า LCM และ GCD น้อยที่สุดจากทุก sub-array ที่เป็นไปได้ ตัวอย่าง: อาร์เรย์ {2, 66, 14, 521} → LCM น้อยที่สุด = 2, GCD น้อยที่สุด = 1 แนวคิดแบบ Greedy ถ้าลดจำนวนสมาชิก LCM จะน้อยลง → LCM น้อยที่สุดคือสมาชิกที่มีค่าน้อยที่สุดในอาร์เรย์ (sub

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

    บทนำ กำหนดสตริงสองสตริงที่มีความยาวเท่ากัน ต้องการหาจำนวนการเปลี่ยนแปลง (alterations) น้อยที่สุด เพื่อทำให้ทั้งสองเป็น Anagram (มีชุดตัวอักษรเหมือนกัน) โดยไม่ลบตัวอักษรใดๆ ตัวอย่าง: HELLO และ WORLD → ต้องเปลี่ยน 3 ตัวอักษร แนวคิด นับความถี่ (frequency) ของแต่ละตัวอักษรในสตริงแรก วนลูปสตริงที่สอง

  4. หาจำนวนการดำเนินการน้อยที่สุดเพื่อทำให้ GCD ของอาร์เรย์เป็นตัวคูณของ k ใน C++

    บทนำ กำหนดอาร์เรย์ arr และค่า k ต้องการหาจำนวนการดำเนินการ (operations) น้อยที่สุด เพื่อทำให้ GCD ของอาร์เรย์เป็นตัวคูณของ k การดำเนินการคือการเพิ่มหรือลดค่าของสมาชิก ตัวอย่าง: อาร์เรย์ {4, 5, 6}, k = 5 → เพิ่ม 4 เป็น 5 (1 ครั้ง), ลด 6 เป็น 5 (1 ครั้ง) รวม 2 ครั้ง ขั้นตอนการแก้ปัญหา สำหรับแต่ละส

  5. หาจำนวนเต็มบวกน้อยที่สุดที่หารด้วย C ลงตัวและไม่อยู่ในช่วง [A, B] ใน C++

    บทนำ กำหนดจำนวนเต็มสามจำนวน A, B, C ต้องการหาจำนวนเต็ม X ที่น้อยที่สุด โดยที่ X mod C = 0 และ X ไม่อยู่ในช่วง [A, B] ตัวอย่าง: A=5, B=10, C=4 → X = 4 ขั้นตอนการแก้ปัญหา ถ้า C ไม่อยู่ในช่วง [A, B] ให้คืนค่า C ทันที มิฉะนั้น หาตัวคูณของ C ที่มากกว่า B เป็นตัวแรก แล้วคืนค่านั้น ตัวอย่างโค้ด C++ #

  6. หา GCD ของแฟกทอเรียลของสมาชิกในอาร์เรย์ ใน C++

    บทนำ กำหนดอาร์เรย์ A ขนาด N ต้องการหา GCD ของแฟกทอเรียลของทุกสมาชิกในอาร์เรย์ ตัวอย่าง: อาร์เรย์ {3, 4, 8, 6} → GCD ของแฟกทอเรียลคือ 6 ข้อสังเกตสำคัญ GCD ของแฟกทอเรียลสองจำนวน คือค่าแฟกทอเรียลของจำนวนที่น้อยกว่าเอง เช่น GCD ของ 3! และ 5! คือ 3! = 6 ตัวอย่างโค้ด C++ #include <iostream> usin

  7. หา HCF (GCD) ของสองจำนวนโดยไม่ใช้การเรียกซ้ำหรืออัลกอริทึมยุคลิด ใน C++

    บทนำ ปกติ HCF หรือ GCD คำนวณได้ง่ายด้วยอัลกอริทึมยุคลิด แต่ที่นี่จะแสดงวิธีหา GCD โดยไม่ใช้การเรียกซ้ำ (recursion) และไม่ใช่อัลกอริทึมยุคลิด ตัวอย่าง: จำนวน 16 และ 24 → GCD = 8 แนวคิด หาจำนวนที่น้อยกว่าระหว่างสองจำนวน ถ้าจำนวนมากกว่าหารด้วยจำนวนน้อยลงตัว → จำนวนน้อยคือ HCF มิฉะนั้น วนลูปจาก (จำน

  8. ตรวจสอบว่าจุดอยู่ภายในวงกลมหรือไม่ ใน C++

    บทนำ โจทย์: กำหนดวงกลมหนึ่งวง (พิกัดศูนย์กลางและรัศมี) และจุดหนึ่งจุด ต้องการทราบว่าจุดนั้นอยู่ภายในวงกลมหรือไม่ วิธีแก้ปัญหา คำนวณระยะห่างจากจุดที่กำหนดไปยังศูนย์กลางวงกลม หากระยะห่างน้อยกว่าหรือเท่ากับรัศมี จุดนั้นอยู่ภายในวงกลม มิฉะนั้นอยู่นอกวงกลม สูตรระยะห่างยกกำลังสอง: dist = (x - cx)² + (y

  9. ตรวจสอบว่า nCr หารด้วยจำนวนเฉพาะ P ลงตัวหรือไม่ ใน C++

    บทนำ ให้ตัวแปรสามตัวคือ N, R และ P โดย N และ R ใช้คำนวณ NCR (การจัดหมู่) และ P เป็นจำนวนเฉพาะ เราต้องการทราบว่า NCR หารด้วย P ลงตัวหรือไม่ ตัวอย่าง: N = 7, R = 2, P = 3 → 7C2 = 21 ซึ่งหารด้วย 3 ลงตัว ดังนั้นผลลัพธ์คือ true หลักการคำนวณ เรารู้ว่า NCR = N! / (R! × (N - R)!) ใช้ สูตรเลจันดร (Legendr

  10. หาค่า LCM ของจำนวนตรรกยะ (Rational Numbers) ใน C++

    บทนำ บทความนี้จะแสดงวิธีการหา LCM (Least Common Multiple - ตัวคูณร่วมน้อยที่สุด) ของจำนวนตรรกยะ สมมติมีรายการจำนวนตรรกยะ เช่น {2/7, 3/14, 5/3} ค่า LCM จะได้เป็น 30/1 สูตรการคำนวณ เพื่อแก้ปัญหานี้ เราต้องคำนวณ: LCM ของตัวเศษทั้งหมด (Numerators) GCD ของตัวส่วนทั้งหมด (Denominators) LCM ของจำนวนตรรก

  11. หาค่าที่ n ของลำดับเส้นโค้งมังกร (Dragon Curve Sequence) ใน C++

    บทนำ ลำดับเส้นโค้งมังกร (Dragon Curve Sequence) เป็นลำดับไบนารีแบบอนันต์ ที่เริ่มต้นด้วย 1 และในแต่ละขั้นตอน จะเพิ่ม 1 และ 0 สลับกัน ไปข้างหน้าและข้างหลังของแต่ละสมาชิกในเทอมก่อนหน้า เพื่อสร้างเทอมถัดไป ตัวอย่างลำดับ เทอม 1: 1 เทอม 2: 110 เทอม 3: 1101100 เทอม 4: 110110011100100 เราเริ่มต้นด้วย

  12. หา Surpasser Count ของแต่ละ Element ใน Array ใน C++

    มี Array A ต้องหา Surpasser Count ของแต่ละ Element Surpasser คือ Elements ที่มากกว่าและอยู่ด้านขวาของ Current Element ตัวอย่าง A={2,7,5,3,0,8,1} Surpassers={4,1,1,1,2,0,0} หมายถึง 2 มี 4 ตัวด้านขวาที่มากกว่า วิธีง่าย: 2 Nested Loops นับ Surpassers สำหรับแต่ละ Element เก็บใน Array อีกตัว ตัวอย่างโค้ด

  13. หาอีก Number เมื่อ LCM และ HCF กำหนดใน C++

    มี Number A, LCM และ GCD ต้องหา Number B อีกตัว ตัวอย่าง A=5, LCM=25, HCF=4 ได้ B=4 ใช้สูตร: A × B = LCM × HCF B = (LCM × HCF) / A ตัวอย่างโค้ด C++ #include <iostream> using namespace std; int anotherNumber(int A, int LCM, int GCD) { return (LCM * GCD) / A; } int main() { int A = 5,

  14. หา Resulting Colour Combination ใน C++

    มี String 3 สี (G, B, Y) ต้องหา Resulting Color จาก Rules: B * G = Y Y * B = G G * Y = B ตัวอย่าง GBYGB = B, BYB = Y วิธี: Compare Adjacent Characters ตาม Rules หา Color ตัวอย่างโค้ด C++ #include <iostream> using namespace std; char combination(string s) { char color = s[0]; for (in

  15. หา 2 Numbers ที่ Sum และ GCD กำหนดใน C++

    มี Sum และ GCD ของ 2 Numbers a และ b ต้องหา a และ b ถ้าไม่ได้คืน -1 ตัวอย่าง Sum=6, GCD=2 ได้ Numbers 4 และ 2 แนวทาง: เนื่องจาก GCD กำหนด Numbers จะเป็น Multiples ของ GCD เลือกตัวแรก = GCD ตัวที่สอง = Sum - GCD ถ้าผลรวมตรงกับ Sum ที่ให้มา พิมพ์ทั้งคู่ มิฉะนั้น -1 ตัวอย่างโค้ด C++ #include <iostre

  16. ตรวจสอบ Integer Overflow ใน Multiplication ใน C++

    ต้องการตรวจสอบว่า Multiplication ของ A และ B จะเกิน 64-bit Integer หรือไม่ ตัวอย่าง 100×200 ไม่เกิน แต่ 10000000000 × -10000000000 จะ Overflow ขั้นตอนตรวจสอบ: ถ้าใดๆ เป็น 0 ไม่เกิน ถ้า (A×B)/B == A ไม่เกิน กรณีอื่นๆ จะเกิน ตัวอย่างโค้ด C++ #include <iostream> #include <cmath> using nam

  17. ตรวจสอบ Magic Number (Recursive Digit Sum = 1) ใน C++

    ตรวจสอบว่า Number เป็น Magic Number หรือไม่ Magic Number คือ Recursive Sum of Digits เท่ากับ 1 ตัวอย่าง 50311 = 5+0+3+1+1 = 10 = 1+0 = 1 เป็น Magic Number วิธี: บวก Digits จนได้ Single Digit ตัวอย่างโค้ด C++ #include <iostream> using namespace std; int isMagicNumber(int n) { int digit_sum

  18. ตรวจสอบ Number ถูก Sandwiched ระหว่าง Primes ใน C++

    ตรวจสอบว่า Number ถูก Sandwiched ระหว่าง Primes หรือไม่ Sandwiched Between Primes หมายถึง n-1 และ n+1 เป็น Prime Numbers ทั้งคู่ ตัวอย่างโค้ด C++ #include <iostream> #include <set> #define N 100005 using namespace std; bool isPrime(int n) { if (n == 0 || n == 1) return false

  19. ตรวจสอบ a+b=c หลัง Remove Zeroes ใน C++

    สมมติมี a, b, c ต้องตรวจสอบว่า a + b = c หลัง Remove 0 ทั้งหมดจากตัวเลข ตัวอย่าง a=102, b=130, c=2005 หลัง Remove 0s: 12 + 13 = 25 เป็นจริง Remove 0s จาก Numbers แล้วเช็ค a + b = c ตัวอย่างโค้ด C++ #include <iostream> #include <algorithm> using namespace std; int deleteZeros(int n) {

  20. ตรวจสอบ Binary String มี Consecutive Same Characters ใน C++

    สมมติมี Binary String ต้องตรวจสอบว่ามี Consecutive Same Characters หรือไม่ ถ้ามี = Invalid มิฉะนั้น Valid ตัวอย่าง 101010 Valid แต่ 10111010 Invalid Traverse ซ้ายไปขวา ถ้า 2 Consecutive Characters เหมือนกัน คืนค่า false มิฉะนั้น true ตัวอย่างโค้ด C++ #include <iostream> #include <algorithm&

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:80/301  20-คอมพิวเตอร์/Page Goto:1 74 75 76 77 78 79 80 81 82 83 84 85 86