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

    สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบ มีนักเรียน n คนในโรงเรียน แต่ละคนมีโหวต k โหวต และต้องใช้โหวตทั้งหมด มีสองพรรค A[i] แทนว่า นักเรียนคนที่ i โหวตให้พรรคแรก A[i] โหวต หมายความว่าพรรคที่สองจะได้ k - A[i] โหวต พรรคที่สองต้องการตั้งค่า k ให้พวกเขาชนะ ค่า k ต่ำสุดที่เป็นไปได้คือเท่าไหร่ เช่น ถ้

  2. โค้ด C++ ตรวจสอบจำนวนกองหินวันที่สองถูกต้องหรือไม่

    สมมติว่าเรามีอาร์เรย์ X และ Y ขนาดเท่ากัน มีกองหิน X[i] ลูกที่ดัชนี i ในวันแรก และวันที่สองดัชนี i มี Y[i] ลูก ในวันแรกมีสมาชิกมาหลายคน แต่ละคนจะไม่ทำอะไร เพิ่มหินไปที่กองบางกอง หรือย้ายหินจากกองหนึ่งไปอีกกองหนึ่ง เราต้องตรวจสอบว่า Y ถูกต้องจาก X หรือไม่ เช่น ถ้าอินพุตคือ X = [1, 2, 3, 4, 5]; Y = [

  3. โค้ด C++ หาจำนวนที่มากกว่า n และหาร k ลงตัว

    สมมติว่าเรามีตัวเลขสองจำนวน n และ k เราต้องหาจำนวนเต็ม x ที่น้อยที่สุดซึ่งมากกว่า n และหาร k ลงตัว เช่น ถ้าอินพุตคือ n = 5; k = 3 เอาต์พุตจะเป็น 6 ขั้นตอนการแก้ปัญหา return n + k - (n mod k) ตัวอย่างโค้ด #include <bits/stdc++.h> using namespace std; int solve(int n, int k) { return n +

  4. โค้ด C++ หาจุดกึ่งกลางของกล่องภายใน

    สมมติว่าเรามีเมทริกซ์ขนาด n x m เซลล์เป็น W (ขาว) หรือ B (ดำ) มีสี่เหลี่ยมจัตุรัสภายในตารางที่มีความยาวคี่ถูกทาสีดำ เราต้องหาจุดกึ่งกลางของสี่เหลี่ยมนี้ เช่น ถ้าอินพุตเป็นตาราง 5x6 ที่มีบล็อกสีดำ 3x3 ตั้งแต่คอลัมน์ 2-4 และแถว 0-2 เอาต์พุตจะเป็น (3, 1) ขั้นตอนการแก้ปัญหา n := จำนวนแถวของเมทริกซ์ m

  5. โค้ด C++ ตอบคำถามจากการตรวจสอบสระ

    สมมติว่าเรามีสตริง S อมลและบิมลกำลังเล่นเกม กฎคือ: ผู้เล่นคนแรก (อมล) เป็นนักสืบ ต้องสอบสวน อาชญากรรม และหาสาเหตุ เขาสามารถถามคำถามได้ที่ตอบ ใช่ หรือ ไม่ เท่านั้น หากตัวอักษรสุดท้ายของคำถามเป็นสระ จะตอบ ใช่ มิฉะนั้นตอบ ไม่ สระคือ: A, E, I, O, U, Y เรามี S เป็นคำถาม ต้องหาคำตอบ เช่น ถ้าอินพุตคือ S =

  6. โค้ด C++ หาสตริงไบนารีที่น้อยที่สุดและถูกต้อง

    สมมติว่าเรามีสตริงไบนารี S ที่มี n บิต ไม่มีศูนย์นำที่ซ้ำซ้อน เราสามารถดำเนินการสองแบบบน S ได้: สลับคู่ของบิตที่อยู่ติดกันได้ แทนที่ 11 ทั้งหมดด้วย 1 ให้ val(S) เป็นค่าทศนิยมของ S เราต้องหาสตริงที่ถูกต้องและน้อยที่สุด โดยสตริงถูกต้อง A น้อยกว่า B เมื่อ val(A) < val(B) เช่น ถ้าอินพุตคือ S = 100

  7. โค้ด C++ ตรวจสอบธงว่าถูกตัดแถบหรือไม่

    สมมติว่าเรามีเมทริกซ์ขนาด n x m แต่ละเซลล์จะเก็บค่าตั้งแต่ 0 ถึง 9 ธงควรจะเป็นแถบแนวนอน: แต่ละแถวแนวนอนของธงต้องมีสี่เหลี่ยมสีเดียวกัน และสีของแถวแนวนอนที่ติดกันต้องต่างกัน เราต้องตรวจสอบว่าเมทริกซ์ที่กำหนดเป็นธงที่ถูกต้องหรือไม่ ขั้นตอนการแก้ปัญหา เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้: n := จำน

  8. โค้ด C++ หาระยะทางสั้นที่สุดบนสถานีวงกลม

    โจทย์: สถานีรถไฟฟ้า n สถานีวงกลม ระยะห่างระหว่างสถานีติดกันในอาร์เรย์ D D[i] = ระยะ i ถึง i+1, D[n-1] = ระยะ n-1 ถึง 0 หาระยะทางสั้นที่สุดจาก s ถึง tInput: s=1, t=3, D=[2,3,4,9] → Output: 5 (ทางเข็มนาฬิกา: 3+4=7 ทางตรงข้าม: 2+9=11 → เลือก 5? ตรวจสอบ: s=1,t=3 คือ สถานี 1 ถึง 3 ระยะ D[1]+D[2]=3+4=7 ทา

  9. โค้ด C++ หาความยาวสตริงทิศทางหุ่นยนต์หลังลดรูป

    โจทย์: สตริง S ประกอบ R (ขวา) และ U (บน) แทนการเคลื่อนที่หุ่นยนต์ คู่ RU หรือ UR แทนที่ด้วย D (เฉียง) หาความยาวสตริงหลังลดรูปInput: S=RUURU → Output: 3 (ลดรูปเป็น DUD)ขั้นตอนแก้ans := 0 for i := 0 to n-1: if S[i] != S[i+1]: i++ ans++ return ansตัวอย่างโค้ด#include <bits/stdc++.h> using

  10. โค้ด C++ หาสตริงพาลินโดรมที่มี S เป็น subsequence

    โจทย์: สตริง S หาสตริง T ที่เป็นพาลินโดรม และ S เป็น subsequence ของ TInput: S=ab → Output: aabaa (คำตอบอื่นก็ได้ เช่น abba)ขั้นตอนแก้res := S reverse S res := res + S return resตัวอย่างโค้ด#include <bits/stdc++.h> using namespace std; string solve(string S) { string res = S; reverse(S

  11. โค้ด C++ นับ Local Extrema ของอาร์เรย์

    โจทย์: อาร์เรย์ A ขนาด n A[i] เป็น local minimum ถ้าน้อยกว่าทั้งสองข้าง อย่างเคร่งครัด เป็น local maximum ถ้ามากกว่าทั้งสองข้าง A[0] และ A[n-1] ไม่นับ หาจำนวน local extremaInput: A=[1,5,2,5] → Output: 2 (5 ตำแหน่ง 1 เป็น maxima, 2 ตำแหน่ง 2 เป็น minima)ขั้นตอนแก้sum := 0 for i := 1 to n-2: if (A

  12. โค้ด C++ นับวันที่ใช้จบหนังสือ

    โจทย์: วันที่ i ทำงาน A[i] วินาที เวลาว่างอ่านหนังสือ หนังสือทั้งเล่มใช้ t วินาที หาวันที่จบหนังสือ (1 วัน = 86400 วินาที)Input: A=[86400,86398], t=2 → Output: 2 (วันที่ 1 ทำงานเต็มวัน วันที่ 2 ว่าง 2 วินาที จบ)ขั้นตอนแก้cnt := 1 for each x in A: t -= 86400 - x if t <= 0: return cnt cnt+

  13. โค้ด C++ นับกลุ่มสูงสุดที่จัดได้

    โจทย์: มีกลุ่มนักศึกษา n กลุ่ม ค่า 1 = คนเดี่ยว (ทำงานกับใครก็ได้) ค่า 2 = คู่ (ต้องอยู่ทีมเดียวกันหรือไม่อยู่ด้วยกัน) ที่ปรองษาต้องการทีมละ 3 คน หาจำนวนทีมสูงสุดInput: A=[2,2,2,1,1,1,1] → Output: 3 (จับคู่ 2+1, 2+1, 2+1 เหลือ 1 คนเดี่ยวจับไม่ได้)ขั้นตอนแก้ q: return q + (p-q)/3 else if p < q: retur

  14. โค้ด C++ หาจำนวนกระโดดน้อยที่สุดของกบ

    โจทย์: สายบाइनารี S ความยาว n กบเริ่มที่ 1 อยากไป n กระโดดได้สูงสุด d ไปขวา เฉพาะตำแหน่งที่มี 1 (ใบบัว) หาจำนวนกระโดดน้อยที่สุด ไม่ได้คืน -1Input: S=10010101, d=4 → Output: 2 (กระโดด 1→4→8)ขั้นตอนแก้x := 0, y := 0 while x < n-1 and y = n: return -1 else return yตัวอย่างโค้ด#include <bits/stdc++.h

  15. โค้ด C++ หาเวลาที่คนอยู่ระหว่างกดสองข้างได้

    โจทย์: กดสองข้างอยู่ตำแหน่ง 0 และ L เคลื่อนที่เข้าหากัน ความเร็ว v1, v2 คนกว้าง d ตายถ้าช่องว่าง < d หาเวลาที่อยู่รอดInput: d=1, L=9, v1=1, v2=2 → Output: 2.6667ขั้นตอนแก้e := (L - d) / (v1 + v2) return eตัวอย่างโค้ด#include <bits/stdc++.h> using namespace std; float solve(int d, int L, int v1

  16. โค้ด C++ นับจำนวนครั้งที่ให้หินได้

    โจทย์: ให้หิน n ก้อน ให้หลายครั้ง แต่ติดกันไม่ให้จำนวนเท่ากัน หาจำนวนครั้งสูงสุดที่ให้ได้Input: n=4 → Output: 3 (ให้ 1, 2, 1)ขั้นตอนแก้return (n * 2 + 1) / 3ตัวอย่างโค้ด#include <bits/stdc++.h> using namespace std; int solve(int n) { return (n * 2 + 1) / 3; } int main() { int n = 4;

  17. โค้ด C++ หาจำนวนผู้ชมยืนในเวลาที่กำหนด

    โจทย์: ผู้ชม n คน หมายเลข 1 ถึง n เวลา 1 คนที่ 1 ยืง เวลา 2 คนที่ 2 ยืน ... เวลา k คนที่ k ยืน เวลา k+1 คนที่ k+1 ยืน คนที่ 1 นั่ง ... หาจำนวนคนยืนในเวลา tInput: n=10, k=5, t=3 → Output: 3 (ก่อนเวลา 5 ไม่มีนั่ง คน 1-3 ยืน)ขั้นตอนแก้return min(t, k, n + k - t)ตัวอย่างโค้ด#include <bits/stdc++.h>

  18. โค้ด C++ หาขนาดหน้าจอจากจำนวนพิกเซล

    โจทย์: หน้าจอมี n พิกเซล หาขนาดสี่เหลี่ยมผืนผ้า: แถว (a) ≤ คอลัมน์ (b) และ b-a น้อยที่สุดInput: n=12 → Output: (3, 4)ขั้นตอนแก้i := sqrt(n) while n % i != 0: i-- return (i, n/i)ตัวอย่างโค้ด#include <bits/stdc++.h> using namespace std; void solve(int n) { int i = sqrt(n); while (n % i)

  19. โค้ด C++ นับจำนวนแพ็คกระดาษที่ต้องซื้อ

    โจทย์: ทำเครื่องบินกระดาษ 1 ตัวใช้ 1/2 แผ่น (s ตัวต่อแผ่น) k คน ทำคนละ n ตัว ซื้อแพ็คละ p แผ่น หาจำนวนแพ็คน้อยที่สุดInput: k=5, n=3, s=2, p=3 → Output: 4 (ต้องการ 5×2=10 แผ่น → 4 แพ็ค = 12 แผ่น)ขั้นตอนแก้sheets_per_person := ceil(n / s) total_sheets := k * sheets_per_person packs := ceil(total_sheet

  20. โค้ด C++ หาเวลาดูทีวีก่อนปิดเพราะเบื่อ

    โจทย์: ดูแมทช์ 90 นาที ไม่มีพัก แต่ละนาทีสนุกหรือเบื่อ หากเบื่อติดต่อกัน 15 นาที จะปิดทีวีทันที มีนาทีสนุก n นาทีในอาร์เรย์ A หาเวลาที่ดูต่อเนื่องInput: A=[7,20,88] → Output: 35 (หลังนาทีที่ 20 ยังดูต่อจนถึง 35 แล้วปิด)ขั้นตอนแก้ 15: break return min(a[i-1] + 15, 90)ตัวอย่างโค้ด#include <bits/std

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:300/301  20-คอมพิวเตอร์/Page Goto:1 294 295 296 297 298 299 300 301