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

    คำอธิบายปัญหา สมมติว่าเรามีตัวเลข n ต้องการหาจำนวนเต็ม 2 ตัว l และ r ที่ l < r และ l + (l+1) + ... + (r-1) + r = n ตัวอย่าง: n = 25 ผลลัพธ์คือ l = -2 และ r = 7 เพราะ (-2)+(-1)+0+1+2+3+4+5+6+7 = 25 (คำตอบอื่นก็ได้) ขั้นตอนการแก้ปัญหา คืนค่า -(n-1) และ n ตัวอย่างโค้ด C++ #include<bits/stdc++.h&

  2. โปรแกรม C++ นับจำนวนรูปทรง 12 ด้านที่สร้างได้จากกระเบื้อง

    คำอธิบายปัญหา สมมติว่าเรามีตัวเลข d มีกระเบื้องสี่เหลี่ยมจัตุรัสและกระเบื้องสามเหลี่ยมด้านเท่าจำนวนไม่จำกัด ด้านยาว 1 ต้องการหาว่าสามารถสร้างรูปทรง 12 ด้าน (dodecagon) ที่ด้านยาว d ได้กี่วิธี หากคำตอบใหญ่เกิน ให้คืนค่า mod 998244353 ขั้นตอนการแก้ปัญหา b := floor(d/2) - 1 c := 1 สำหรับ i := 2 ถึง d

  3. โปรแกรม C++ หาจำนวนครั้งเฉลี่ยในการลบโหนดในกราฟทิศทาง

    คำอธิบายปัญหา สมมติว่าเรามีเมทริกซ์สมัยติดกันของกราฟทิศทาง G จนกว่ากราฟจะว่างเปล่า เราทำซ้ำการดำเนินการ: เลือกโหนดหนึ่งจาก G แล้วลบโหนดนั้นและโหนดทั้งหมดที่เข้าถึงได้จากโหนดนั้นโดยติดตามเส้นทาง การลบโหนดจะลบเส้นขอบที่เชื่อมด้วย ต้องการหาจำนวนครั้งเฉลี่ยที่ต้องดำเนินการ ตัวอย่าง: กราฟ 3 โหนด ที่มีเ

  4. โปรแกรม C++ หาด้านที่ 4 ของสี่เหลี่ยมจาก 3 ด้านที่กำหนด

    คำอธิบายปัญหา สมมติว่าเรามีตัวเลข 3 ตัวคือ a, b และ c ต้องการทำรั้วปิดเป็นรูปสี่เหลี่ยมธรรมดาที่ไม่退化 (non-degenerate simple quadrilateral) มี 3 ด้านแล้วคือ a, b, c ต้องการหาอีกด้านหนึ่ง d ตัวอย่าง: a = 12; b = 34; c = 56 ผลลัพธ์คือ 42 (คำตอบอื่นก็ได้) ขั้นตอนการแก้ปัญหา คืนค่า a + b + c - 2 ตัว

  5. โปรแกรม C++ หาลำดับวงเล็บที่ถูกต้อง n ลำดับ

    คำอธิบายปัญหา สมมติว่าเรามีตัวเลข n ลำดับวงเล็บคือสตริงที่มีเฉพาะ ( และ ) ลำดับวงเล็บที่ถูกต้องคือลำดับที่สามารถแปลงเป็นนิพจน์คณิตศาสตร์ที่ถูกต้องได้โดยแทรก 1 และ + ระหว่างตัวอักษร ตัวอย่าง ()() ถูกต้องเพราะกลายเป็น (1)+(1) จาก n ต้องการหาลำดับวงเล็บที่ถูกต้อง n ลำดับที่มีความยาว 2n และต่างกันทั้งห

  6. โปรแกรม C++ นับค่าที่แตกต่างได้สูงสุดหลังกลับเครื่องหมายซับอาร์เรย์

    คำอธิบายปัญหา สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบ เลือกซับเซตใดก็ได้ของตัวเลขที่กำหนดและกลับเครื่องหมายตัวเลขเหล่านั้น ต้องการหาจำนวนค่าที่แตกต่างกันสูงสุดในอาร์เรย์ที่ได้ ตัวอย่าง: A = [1, 1, 2, 2] ผลลัพธ์คือ 4 เพราะสามารถกลับเครื่องหมายตัวแรกและตัวสุดท้ายได้อาร์เรย์ [-1, 1, 2, -2] ที่มี 4

  7. โปรแกรม C++ หาอาร์เรย์หลังลบค่าซ้ำเก็บเฉพาะค่าสุดท้าย

    คำอธิบายปัญหา สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบ ต้องการลบองค์ประกอบที่ซ้ำกัน โดยเก็บเฉพาะค่าที่ปรากฏสุดท้าย (rightmost) ของแต่ละค่า ลำดับสัมพัทธ์ของค่าที่เหลือต้องไม่เปลี่ยนแปลง ตัวอย่าง: A = [1, 5, 5, 1, 6, 1] ผลลัพธ์คือ [5, 6, 1] ขั้นตอนการแก้ปัญหา กำหนดอาร์เรย์ b และ vis ขนาด 1200 ทั้

  8. โปรแกรม C++ คำนวณปีที่ต้องใช้เพื่อให้เงินในธนาคารถึง X บาท ด้วยดอกเบี้ย 1%

    คำอธิบายปัญหา สมมติว่าเรามีตัวเลข X มีเงินในธนาคาร 100 บาท ธนาคารให้ดอกเบี้ยรายปี 1% คิดดอกเบี้ยทบต้นทุกปี (ใช้จำนวนเต็มเท่านั้น) ต้องการหาว่าต้องใช้กี่ปีถึงจะได้เงิน X บาท ตัวอย่าง: X = 520 ผลลัพธ์คือ 213 ขั้นตอนการแก้ปัญหา sum := 0 balance := 100 while balance < n ทำ: interest := balance /

  9. โปรแกรม C++ หาเงินออมสูงสุดจากการจัดตัวเลขและเครื่องหมายบวก

    คำอธิบายปัญหา สมมติว่าเรามีตัวเลข 3 ตัวคือ A, B และ C พิจารณาเกม: มีแผ่นตัวเลข 3 แผ่น แต่ละแผ่นมีเลข 1 ถึง 9 และแผ่นเครื่องหมาย 1 แผ่นมีเครื่องหมาย + ผู้เล่นต้องจัดเรียงแผ่นทั้ง 4 ให้เป็นสูตร X+Y จากซ้ายไปขวา เงินออมจะเท่ากับค่าของสูตรนั้น ต้องการหาเงินออมสูงสุดที่เป็นไปได้ ตัวอย่าง: A = 1; B = 5;

  10. โปรแกรม C++ นับจำนวนเหรียญขั้นต่ำเพื่อให้ได้ค่า N ด้วยการคูณและบวกลบ

    คำอธิบายปัญหา สมมติว่าเรามีตัวเลข 5 ตัวคือ N, A, B, C, D เริ่มจากเลข 0 และต้องการไปถึง N สามารถเปลี่ยนแปลงตัวเลขได้โดยจ่ายเหรียญตามการดำเนินการต่อไปนี้: คูณตัวเลขด้วย 2 จ่าย A เหรียญ คูณตัวเลขด้วย 3 จ่าย B เหรียญ คูณตัวเลขด้วย 5 จ่าย C เหรียญ เพิ่มหรือลดตัวเลขลง 1 จ่าย D เหรียญ สามารถทำซ้ำได้ไม่จ

  11. โปรแกรม C++ หาระยะทางสูงสุดระหว่างนักเรียนคู่แข่งหลังสลับที่นั่ง x ครั้ง

    คำอธิบายปัญหา สมมติว่าเรามีตัวเลข 4 ตัวคือ n, x, a และ b มีนักเรียน n คนนั่งเป็นแถว มีคู่แข่ง 2 คนอยู่ในกลุ่ม คนหนึ่งอยู่ตำแหน่ง a อีกคนอยู่ตำแหน่ง b ตำแหน่งนับจาก 1 ถึง n จากซ้ายไปขวา เราต้องการเพิ่มระยะห่างระหว่างนักเรียนทั้งสองให้มากที่สุด เราสามารถทำการสลับที่นั่งระหว่างนักเรียนที่นั่งติดกันได้

  12. โปรแกรม C++ หาลำดับการวางทองบนเครื่องชั่งน้ำหนักโดยไม่ให้ระเบิด

    คำอธิบายปัญหา สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบที่แตกต่างกัน และตัวเลขอีกตัวหนึ่งคือ x มีทอง n ชิ้น โดยชิ้นที่ i มีน้ำหนักเท่ากับ A[i] เราจะวางทอง n ชิ้นนี้บนเครื่องชั่งน้ำหนักทีละชิ้น แต่เครื่องชั่งมีข้อบกพร่องที่แปลกประหลาด: หากน้ำหนักรวมบนเครื่องชั่งเท่ากับ x อย่างแน่นอน เครื่องจะระเบิด

  13. โปรแกรม C++ นับจำนวนเมืองที่เดินทางได้จากแต่ละเมือง

    กำหนดให้มีรายการพิกัด N จุด P ในรูปแบบ (xi, yi) โดยค่า x และ y เป็นการเรียงสับเปลี่ยน (permutation) ของจำนวนธรรมชาติ N ตัวแรก สำหรับแต่ละ k ตั้งแต่ 1 ถึง N เราอยู่ที่เมือง k สามารถทำการดำเนินการได้ไม่จำกัดครั้ง การดำเนินการ: ย้ายไปเมืองอื่นที่มีพิกัด x น้อยกว่าและ y น้อยกว่า หรือ x มากกว่าและ y มาก

  14. โปรแกรม C++ ต่อสตริงในลำดับย้อนกลับ

    สมมติว่าเรามีสตริงสองตัว S และ T ทั้งคู่เป็นตัวอักษรพิมพ์เล็ก ต่อ T และ S ในลำดับนี้เพื่อสร้างสตริงสุดท้าย เช่น ถ้าค่าที่ป้อนเข้าเป็น S = ramming; T = prog ผลลัพธ์จะได้ programming ขั้นตอนการแก้ปัญหา เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้: res := T ต่อ S คืนค่า res ตัวอย่างโค้ด ดูการนำไปใช้จริง

  15. โปรแกรม C++ ตรวจสอบผลเกม XOR ว่าเป็น 0 หรือไม่

    สมมติว่าเรามีอาร์เรย์ A ที่มี N องค์ประกอบ และสตริงไบนารี S อีกตัว พิจารณาผู้เล่น 2 คนเล่นเกม พวกเขาได้หมายเลข 0 และ 1 มีตัวแปร x ค่าเริ่มต้น 0 เกมมี N รอบ ในรอบที่ i คน S[i] ทำหนึ่งในสองอย่าง: แทนที่ x ด้วย x XOR A[i] มิฉะนั้นไม่ทำอะไร คน 0 ต้องการ 0 ท้ายเกม คน 1 ต้องการไม่ใช่ 0 เราต้องตรวจสอบว่า x

  16. โปรแกรม C++ หาดัชนีทหารที่จัดเป็นหน่วยลาดตระเวนได้

    สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบ มีทหาร n คนยืนวงกลม สำหรับทหารคนที่ i ความสูงคือ A[i] หน่วยลาดตระเวน (reconnaissance unit) สามารถจัดได้จากสองทหารที่ติดกัน ซึ่งความต่างของความสูงน้อยที่สุด ดังนั้นแต่ละคนจะไม่เด่นชัดกับอีกคน เราต้องหาดัชนีของคู่ทหารที่สามารถจัดเป็นหน่วยลาดตระเวนได้ เช่น ถ้

  17. โปรแกรม C++ นับจำนวนช่วงบันไดและขั้นบันไดแต่ละช่วง

    สมมติว่ามีอาร์เรย์ A ขนาด n อมลปีนบันไดภายในอาคารหลายชั้น ทุกครั้งที่เริ่มปีนช่วงใหม่ จะนับตั้งแต่ 1 ใหม่ เช่น ถ้าปีน 2 ช่วง ช่วงแรก 3 ขั้น ช่วงที่สอง 4 ขั้น เขาจะพูดเลขว่า: 1, 2, 3, 1, 2, 3, 4 ในอาร์เรย์ A เลขเหล่านี้แสดงถึงหมายเลขขั้นที่อมลพูด เราต้องนับจำนวนช่วงบันไดที่เขาปีน และแสดงจำนวนขั้นในแ

  18. โปรแกรม C++ หาความต่างน้อยที่สุดระหว่างผลรวมสองเซตจาก n จำนวนธรรมชาติแรก

    สมมติว่าเรามีตัวเลข n พิจารณา n จำนวนธรรมชาติแรก เราต้องแบ่งพวกมันเป็นสองเซต A และ B โดยที่แต่ละองค์ประกอบอยู่ในเซตเดียวเท่านั้น และความต่างสัมบูรณ์ระหว่างผลรวมองค์ประกอบใน A และผลรวมใน B เป็นน้อยที่สุด และหาความต่างนั้น เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 5 ผลลัพธ์จะได้ 1 เพราะถ้าเราทำ A = {1, 3, 4} แล

  19. โปรแกรม C++ ตรวจสอบสตริงว่าน่ารังเกียจ (Bad) หรือไม่

    สมมติว่าเรามีสตริง S ความยาว n ตัวอักษร S มีตัวอักษรภาษาอังกฤษพิมพ์เล็กและตัวอักษร ) สตริงเป็น น่ารังเกียจ (bad) ถ้าจำนวนตัวอักษร ) ที่ท้ายสตริง มากกว่าจำนวนตัวอักษรที่เหลืออย่างเคร่งครัด เราต้องตรวจสอบว่า S เป็น bad หรือไม่ เช่น ถ้าค่าที่ป้อนเข้าเป็น S = fega)))))) ผลลัพธ์จะได้ True เพราะนี่เป็น b

  20. โปรแกรม C++ หาอาร์เรย์หลังแทรกค่าใหม่ที่ผลต่างคู่ใดคู่หนึ่งอยู่ในอาร์เรย์

    สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบที่แตกต่างกัน อาร์เรย์ B เรียกว่า น่ารัก (nice) ถ้าสำหรับองค์ประกอบที่แตกต่างกันใดๆ B[i] และ B[j] ค่า |B[i] - B[j]| ปรากฏใน B อย่างน้อย 1 ครั้ง และองค์ประกอบทั้งหมดใน B จะแตกต่างกัน เราต้องตรวจสอบว่าสามารถเพิ่มจำนวนเต็มบางส่วนใน A เพื่อทำให้มันเป็น nice ขนาด

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:293/301  20-คอมพิวเตอร์/Page Goto:1 287 288 289 290 291 292 293 294 295 296 297 298 299