หน้าแรก
หน้าแรก
เราจะมาดูวิธีการนับจำนวนคู่ของ co-prime จากช่วง โดยที่ตัวเลขจะไม่ปรากฏมากกว่าคู่เดียว ก่อนจะพูดถึงตรรกะ เรามาดูกันก่อนว่าจำนวนโคไพรม์คืออะไร? จำนวนเฉพาะร่วมคือตัวเลขที่มีตัวหารจำนวนเต็มบวกเพียงตัวเดียว นั่นคือ 1 กล่าวคือ เราสามารถพูดได้ว่า GCD ของตัวเลขสองตัวนี้คือ 1 ที่นี่เราให้ขีด จำกัด ล่างและบ
เราจะเห็นปัญหาหนึ่งข้อ เรามี N และฐาน B หน้าที่ของเราคือนับตัวเลข N ทั้งหมดของฐาน B โดยไม่มี 0 นำหน้า ดังนั้นถ้า N คือ 2 และ B เป็น 2 จะมีตัวเลขสี่ตัว 00, 01, 10, 11 ดังนั้นมีเพียงสองตัวเท่านั้นที่ใช้ได้สำหรับส่วนนี้ เหล่านี้คือ 10, 11 ไม่มี 0 นำหน้า หากฐานเป็น B แสดงว่ามี 0 ถึง B - 1 หลักที่แตกต่า
ในส่วนนี้ เราจะมาดูวิธีสร้างสตริงที่เป็นไปได้ทั้งหมดที่มีความยาวเท่าใดก็ได้ ซึ่งจะนำอักขระแต่ละชุดมารวมกันเป็นสตริง ตัวอย่างเช่น หากสตริงเป็น ABC ก็จะสร้าง − {A, B, C, AB, BA, BC, CB, CA, AC, ABC, ACB, BAC, BCA, CAB, CBA} เรามาดูตัวอย่างเพื่อทำความเข้าใจกัน อัลกอริทึม printAllString(str) Begin n :=
ที่นี่เราจะเห็นผลลัพธ์ที่น่าอัศจรรย์บางอย่างโดยใช้ฟังก์ชัน system() ใน C หรือ C++ ฟังก์ชันระบบมีอยู่ในระบบปฏิบัติการ Windows, Linux และ MAC ฟังก์ชันนี้ใช้เพื่อดำเนินการคำสั่งของระบบที่สามารถเขียนได้ในบรรทัดคำสั่ง ที่นี่เราจะเห็นการใช้งานสองแบบหากระบบทำงานใน C หรือ C ++ อันแรกคือการรับรายละเอียดการก
ในที่นี้เราจะมาดูวิธีที่มีประสิทธิภาพในการตรวจสอบว่าเทอมฟีโบนักชีที่ n มีจำนวนทวีคูณของ 10 หรือไม่ สมมติว่าเงื่อนไขฟีโบนักชีคือ {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987} แล้วนี่วันที่ 15th (นับจาก 0) เทอม Fibonacci หารด้วย 10 ลงตัว สำหรับ 16 จะคืนค่าเป็นจริง วิธีที่ง่ายที่
ที่นี่เราจะเห็นวิธีการหนึ่งที่น่าสนใจในการสร้างเลขฐานสองจาก 1 ถึง n ที่นี่เราใช้คิว เริ่มแรกคิวจะเก็บเลขฐานสองตัวแรกเป็น 1 ตอนนี้ลบองค์ประกอบออกจากคิวซ้ำแล้วซ้ำอีก และพิมพ์ และเพิ่ม 0 ต่อท้ายรายการส่วนหน้า และต่อท้าย 1 เมื่อสิ้นสุดเวลาส่วนหน้า และแทรกลงในคิว ให้เราดูอัลกอริทึมเพื่อให้ได้แนวคิด อัลกอ
เราจะมาดูวิธีการสร้างจำนวนเฉพาะทั้งหมดที่น้อยกว่า n อย่างมีประสิทธิภาพ ในแนวทางนี้ เราจะใช้ทฤษฎีบทของวิลสัน ตามทฤษฎีบทของเขาถ้าจำนวน k เป็นจำนวนเฉพาะ ดังนั้น ((k - 1)! + 1) mod k จะเป็น 0 ให้เราดูอัลกอริทึมเพื่อให้ได้แนวคิดนี้ แนวคิดนี้จะไม่ทำงานในภาษา C หรือ C++ โดยตรง เนื่องจากจะไม่รองรับจำนวนเต็
เราจะเห็นปัญหาที่น่าสนใจอย่างหนึ่ง เรามีต้นไม้ไบนารีหนึ่งต้น เราต้องข้ามต้นไม้ในลักษณะทวนเข็มนาฬิกา ทางผ่านจะเป็นดังนี้ − ลำดับการข้ามผ่านคือ 1, 8, 9, 10, 11, 12, 13, 14, 15, 3, 2, 4, 5, 6, 7 อัลกอริทึม antiClockTraverse(ราก) Begin i := 1, j := height of the tree flag :=
เราจะมาดูวิธีหาความยาวส่วนโค้งจากมุมที่กำหนด หนึ่งวงกลมจะได้รับ รัศมีของวงกลมจะได้รับ งานของเราคือการหาความยาวส่วนโค้งโดยใช้รัศมีและมุม มุมเป็นองศา ที่นี่ให้ r และ x เราต้องหาค่าของ L โดยสูตรจะเป็นดังนี้ − 𝐿 = 2𝜋𝑟 ∗ (𝑥/360) ตัวอย่าง #include <iostream> using namespace std; float
ให้เราพิจารณาหนึ่งครึ่งวงกลมจะได้รับ รัศมีของมันคือ R รูปสี่เหลี่ยมผืนผ้ายาว l และความกว้าง b หนึ่งรูปถูกจารึกไว้ในครึ่งวงกลมนั้น ตอนนี้วงกลมหนึ่งวงที่มีรัศมี r ถูกจารึกไว้ในสี่เหลี่ยมผืนผ้า เราต้องหาพื้นที่วงใน ดังที่เราทราบดีว่าสี่เหลี่ยมที่ใหญ่ที่สุดที่สามารถจารึกไว้ภายในครึ่งวงกลมนั้นมีความยา
ในที่นี้เราจะมาดูวิธีการหาพื้นที่ของรูปใบไม้ด้านล่าง ซึ่งมีอยู่ในสี่เหลี่ยม ABCD สี่เหลี่ยมจัตุรัสแต่ละด้านยาว a ใบไม้มีสองส่วนเท่า ๆ กัน พื้นที่ของแต่ละส่วนคือ p ตอนนี้ − และพื้นที่เต็มใบคือ 2p. ตัวอย่าง #include <iostream> using namespace std; float leafArea(float a){ retu
ในที่นี้เราจะมาดูวิธีหาพื้นที่ของรูปหลายเหลี่ยมปกติด้าน n ซึ่งกำหนดรัศมีไว้ รัศมีคือระยะห่างจากจุดศูนย์กลางของจุดยอดใดๆ เพื่อแก้ปัญหานี้ เราได้วาดเส้นตั้งฉากหนึ่งฉากจากจุดศูนย์กลางไปด้านหนึ่ง ให้แต่ละด้านยาว a ฉากตั้งฉากแบ่งด้านออกเป็นสองส่วน ความยาวของแต่ละส่วนคือ a/2 ตั้งฉากกับรัศมีหนึ่งทำให้มุม x
เราจะมาดูวิธีการคำนวณพื้นที่ของ Reuleaux Triangle ดังนี้ สามเหลี่ยม Reuleaux มีสามเหลี่ยมด้านเท่าหนึ่งรูปอยู่ข้างใน สมมติว่าความสูงคือ h รูปร่างนี้เกิดจากจุดตัดของวงกลมสามวง มีสามภาควงกลม พื้นที่ของแต่ละภาคคือ − เนื่องจากพื้นที่ของสามเหลี่ยมด้านเท่าเพิ่มขึ้นสามครั้ง เราจึงต้องลบมันออก ดังนั้นพ
1 หากไม่มีการเปลี่ยนแปลงดังกล่าว ให้คืนค่า -1 วิธีการนั้นง่าย เราจะใช้วิธีโลภ เราจะจัดเรียงเลขคี่ทั้งหมดโดยเรียงลำดับเพิ่มขึ้นหรือลดลง จากนั้นจึงจัดเรียงเลขคู่ทั้งหมดตามลำดับการลดลงหรือเพิ่มขึ้น อัลกอริทึม จัดN(n) Begin if N is 1, then return 1 if N is 2 or 3, then return
สมมติว่าเรามีสตริงที่มีองค์ประกอบ n (n <10) เราต้องหาหลายวิธีที่จะจัดเรียงสตริงโดยไม่เปลี่ยนตำแหน่งสัมพัทธ์ของสระและพยัญชนะ วิธีการนั้นง่าย เราต้องนับจำนวนเสียงสระและพยัญชนะในสตริงที่กำหนด แล้วจึงต้องหาว่าเราจะจัดเฉพาะสระได้กี่วิธี แล้วหาจำนวนวิธีจัดเรียงพยัญชนะเท่านั้น หลังจากนั้น คูณผลลัพธ์ทั้งสอ
สมมติว่าเรามีอาร์เรย์ที่มี n องค์ประกอบตั้งแต่ 1 ถึง n ตามลำดับที่สับเปลี่ยน ให้จำนวนเต็ม K อีกตัวหนึ่ง มีคน N ยืนต่อแถวเล่นแบดมินตัน ผู้เล่นสองคนแรกจะไปเล่นแล้วผู้แพ้จะไปที่ท้ายคิว ผู้ชนะจะเล่นกับคนต่อไปจากคิวเป็นต้น พวกเขาจะเล่นจนกว่าจะมีคนชนะ K ครั้งติดต่อกัน จากนั้นผู้เล่นคนนั้นจะกลายเป็นผู้ชนะ
เราจะเห็นปัญหาหนึ่งที่น่าสนใจ เรากำลังรับหนึ่งอาร์เรย์ a ที่มีองค์ประกอบ N เราต้องหาองค์ประกอบ x ที่ |a[0] - x| + |a[1] - x|+ … + |a[n-1] - x| ถูกย่อเล็กสุด จากนั้นเราต้องหาผลรวมที่น้อยที่สุด ให้อาร์เรย์เป็น:{1, 3, 9, 6, 3} ตอนนี้ x คือ 3 ดังนั้นผลรวมคือ |1 - 3| + |3 - 3| + |9 - 3| + |6 - 3| + |3 -
ที่นี่เราจะเห็นปัญหาหนึ่ง เรามีหนึ่งอาร์เรย์ งานของเราคือค้นหาองค์ประกอบเหล่านั้นที่มีความถี่มากกว่า 1 สมมติว่าองค์ประกอบคือ {1, 5, 2, 5, 3, 1, 5, 2, 7} ที่นี่ 1 เกิดขึ้น 2 ครั้ง 5 ครั้งเกิดขึ้น 3 ครั้งและ 2 ครั้งเกิดขึ้นสามครั้ง อื่นๆ เกิดขึ้นเพียงครั้งเดียว ดังนั้นผลลัพธ์จะเป็น {1, 5, 2} อัลกอริทึ
สมมติว่าเรามีหนึ่งอาร์เรย์ เราต้องนับจำนวนองค์ประกอบที่มีอยู่ในอาร์เรย์จำนวนเฉพาะของจำนวนครั้ง ดังนั้นหากอาร์เรย์คือ {1, 2, 2, 0, 1, 5, 2, 5, 0, 0, 1, 1} แล้ว 1 มีอยู่ 4 ครั้ง 2 มีอยู่ 3 ครั้ง 0 มีอยู่ 3 ครั้ง และ 5 มีอยู่ 2 ครั้ง ดังนั้น มีสามองค์ประกอบ {2, 0, 5} ที่เกิดขึ้นเป็นจำนวนเฉพาะ นับเป็น 3
เราจะเห็นปัญหาที่น่าสนใจอย่างหนึ่ง เราจะเอาหนึ่งอาร์เรย์ แล้วหาผลรวมโดยนำแต่ละองค์ประกอบมาหารด้วยองค์ประกอบก่อนหน้า ให้เราพิจารณาอาร์เรย์คือ {5, 6, 7, 2, 1, 4} จากนั้นผลลัพธ์จะเป็น 5 + (6 / 5) + (7 / 6) + (2 / 7) + (1 / 2) + (4 / 1) =12.15238 ให้เราดูอัลกอริธึมเพื่อให้ได้แนวคิด อัลกอริทึม divSum(arr