หน้าแรก
หน้าแรก
ในส่วนนี้เราจะเห็นปัญหาที่น่าสนใจอย่างหนึ่ง มีเหรียญ N. เราต้องหาความสูงสูงสุดที่เราสามารถทำได้ถ้าเราจัดเรียงเหรียญเป็นปิรามิด แบบนี้แถวแรกจะมี 1 เหรียญ แถวที่สองมี 2 เหรียญ ไปเรื่อยๆ ในแผนภาพที่กำหนดให้ เราสามารถเห็นการสร้างปิรามิดที่มีความสูง 3 อัน เราต้องการอย่างน้อย 6 เหรียญ เราไม่สามารถสร้าง
ต่อไปนี้เราจะมาดูวิธีการนับจำนวนไม้ขีดไฟที่ต้องใช้เพื่อให้มีลักษณะเหมือนปิรามิดด้านล่าง ฐานของปิรามิดจะได้รับ ดังนั้นหากฐานเป็น 1 จะต้องใช้ไม้ขีดไฟ 3 อันเพื่อสร้างปิรามิด สำหรับฐาน 2 จะมีไม้ขีดไฟ 9 อัน สำหรับขนาดฐาน 3 จะใช้ไม้ขีดไฟ 18 อัน เพื่อแก้ปัญหานี้ เราต้องใช้สูตรนี้ − ตัวอย่าง #include &
การผกผันของอาร์เรย์บ่งชี้; จำนวนการเปลี่ยนแปลงที่จำเป็นในการแปลงอาร์เรย์เป็นรูปแบบการเรียงลำดับ เมื่อจัดเรียงอาร์เรย์แล้ว จะต้องมีการกลับค่า 0 ครั้ง และในกรณีอื่น จำนวนการผกผันจะสูงสุด หากอาร์เรย์กลับด้าน ในการแก้ปัญหานี้ เราจะปฏิบัติตามวิธีการจัดเรียงแบบผสานเพื่อลดความซับซ้อนของเวลา และทำให้เป็นอั
ที่นี่เราจะดูว่าเราสามารถตรวจสอบจำนวนบิตชุดในจำนวนเต็มได้อย่างไร ชุดบิตคือ 1 ในการแทนค่าเลขฐานสองของตัวเลข ตัวอย่างเช่น หมายเลข 13 มีสามชุดบิต 1101 ดังนั้นการนับจะเป็น 3 เพื่อแก้ปัญหานี้ เราจะเลื่อนตัวเลขไปทางขวา และถ้า LSb เป็น 1 ให้เพิ่มจำนวนขึ้น จนกว่าตัวเลขจะกลายเป็น 0 มันจะทำงาน อัลกอริทึม cou
ในโปรแกรมนี้ เราจะมาดูกันว่าเราจะหาตัวเลขที่เกิดขึ้นเป็นจำนวนคี่ในอาร์เรย์ได้อย่างไร มีหลายวิธีที่แตกต่างกัน วิธีที่ง่ายที่สุดวิธีหนึ่งคือการดำเนินการ ZOR ถ้าตัวเลข XORed กับตัวเอง มันจะเป็น 0 ดังนั้นถ้า XORed จำนวนคู่ มันจะเป็น 0 มิฉะนั้น ตัวเลขนั้นเอง วิธีแก้ปัญหานี้มีปัญหาหนึ่งข้อ หากองค์ประกอบม
ที่นี่เราจะดูว่าเราสามารถปิดระบบโดยการเขียนโค้ด C หรือ C++ อย่างง่ายได้อย่างไร กระบวนการปิดระบบจะแตกต่างกันไปในแต่ละระบบปฏิบัติการ หากเราเป็นผู้ใช้ Linux เราสามารถใช้คำสั่งเทอร์มินัลนี้เพื่อปิดเครื่องได้ shutdown –P now หากเราใช้ระบบ Windows เราสามารถใช้คำสั่งนี้ได้ - c:\\windows\\system32\\s
อาร์เรย์ของจำนวนเต็มจะได้รับ เราต้องหาผลรวมขององค์ประกอบทั้งหมดที่อยู่ติดกัน ผลรวมของใครมากที่สุดจะถูกส่งเป็นผลลัพธ์ การใช้โปรแกรมไดนามิกเราจะเก็บผลรวมสูงสุดจนถึงเทอมปัจจุบัน จะช่วยในการค้นหาผลรวมขององค์ประกอบที่อยู่ติดกันในอาร์เรย์ Input: An array of integers. {-2, -3, 4, -1, -2, 1, 5, -3} Output:
ที่นี่เราจะเห็นอัลกอริทึมแบบยุคลิดเพื่อค้นหา GCD ของตัวเลขสองตัว GCD (ตัวหารร่วมที่ยิ่งใหญ่ที่สุด) สามารถพบได้ง่ายโดยใช้อัลกอริทึมแบบยุคลิด มีสองแนวทางที่แตกต่างกัน แบบหนึ่งเป็นแบบวนซ้ำ อีกแบบเป็นแบบเรียกซ้ำ เราจะใช้อัลกอริธึมแบบยุคลิดแบบเรียกซ้ำ อัลกอริทึม EuclideanAlgorithm(a, b) begin &nbs
นี่เป็นปัญหาปริศนาที่มีชื่อเสียง สมมติว่ามีอาคารที่มี n ชั้น หากเรามีไข่ m ฟอง เราจะหาจำนวนหยดขั้นต่ำที่จำเป็นในการหาชั้นที่จะทิ้งไข่ได้อย่างปลอดภัยโดยไม่ทำให้ไข่แตกได้อย่างไร มีประเด็นสำคัญที่ต้องจำ - เมื่อไข่ไม่แตกจากชั้นที่กำหนด มันจะไม่แตกสำหรับชั้นล่างด้วย หากไข่แตกจากชั้นที่กำหนด ไข่จะแตกสำห
ดังที่เราทราบดีว่ามีการใช้มาโครใน C หรือ C ++ แต่ไม่มีสิ่งอำนวยความสะดวกในการตรวจสอบประเภท แมโครสามารถใช้อาร์กิวเมนต์ประเภทใดก็ได้ ตัวอย่างต่อไปนี้จะแสดงให้เห็นกรณีนี้อย่างชัดเจน ตัวอย่าง #include<stdio.h> #define INCREMENT(X) ++X main() { int x = 5; float y = 2.56; char z = '
ใน C และ C ++ มีตัวระบุฟังก์ชันบางอย่าง ตัวระบุฟังก์ชันใช้เพื่อระบุคุณสมบัติของฟังก์ชัน C++ มี อินไลน์ ตัวระบุฟังก์ชัน ใน C มีตัวระบุฟังก์ชัน _Noreturn ใช้เพื่อระบุว่าฟังก์ชันหนึ่งจะไม่ส่งคืนสิ่งใด ตัวอย่าง #include<stdio.h> int myAdd(int a, int b){ return a + b; } main() {
ในส่วนนี้เราจะมาดูกันว่าเราสามารถสร้างรหัสสีเทาของ n บิตโดยใช้วิธีการย้อนรอยได้อย่างไร รหัสสีเทา n บิตนั้นโดยทั่วไปแล้วจะเป็นรูปแบบบิตตั้งแต่ 0 ถึง 2^n – 1 ซึ่งรูปแบบที่ต่อเนื่องกันนั้นแตกต่างกันหนึ่งบิต ดังนั้นสำหรับ n =2 รหัสสีเทาคือ (00, 01, 11, 10) และค่าเทียบเท่าทศนิยมคือ (0, 1, 3, 2) โปรแกรมจะ
ในส่วนนี้เราจะเห็นปัญหาหนึ่งข้อ ที่นี่ n องค์ประกอบจะได้รับในอาร์เรย์ เราต้องตรวจสอบว่ามีการเรียงสับเปลี่ยนของอาร์เรย์นั้นหรือไม่ โดยแต่ละองค์ประกอบจะระบุจำนวนองค์ประกอบที่มีอยู่ก่อนหรือหลังอาร์เรย์นั้น สมมติว่าองค์ประกอบอาร์เรย์คือ {2, 1, 3, 3} การเรียงสับเปลี่ยนที่เหมาะสมคือ {3, 1, 2, 3} ในที่นี้
เรารู้ว่าอัลกอริธึมการค้นหาแบบไบนารีนั้นดีกว่าอัลกอริธึมการค้นหาเชิงเส้น อัลกอริทึมนี้ใช้เวลาในการดำเนินการ O(log n) แม้ว่าในกรณีส่วนใหญ่โค้ดที่นำมาใช้จะมีปัญหาอยู่บ้าง ให้เราพิจารณาฟังก์ชันอัลกอริธึมการค้นหาแบบไบนารีหนึ่งฟังก์ชันดังด้านล่าง - ตัวอย่าง int binarySearch(int array[], int start, int en
ที่นี่เราจะเห็นโปรแกรมหนึ่งที่สามารถบอกได้ว่าสองสตริงเป็นการหมุนของกันและกันหรือไม่ การหมุนของสตริงเป็นเหมือน − สมมติว่าสองสตริงคือ S1 =HELLO และ S2 =LOHEL ดังนั้นจึงเป็นการหมุนเวียนกัน โดยการหมุน HELLO ไปทางซ้าย 3 ตำแหน่งจะเป็น LOHEL เพื่อแก้ปัญหานี้ เราจะเชื่อมสตริงแรกกับตัวเอง จากนั้นตรวจสอบว่า
ที่นี่เราจะเห็นการปรับปรุงบางอย่างในการเรียงลำดับการเลือก ดังที่เราทราบแล้วว่าการเรียงลำดับการเลือกทำงานโดยนำองค์ประกอบต่ำสุดหรือสูงสุดจากอาร์เรย์และวางองค์ประกอบนั้นในตำแหน่งที่ถูกต้อง ในแนวทางนี้ เราต้องการจัดเรียงอาร์เรย์ทั้งสองวิธี ที่นี่เราจะใช้ค่าสูงสุดและต่ำสุดพร้อมกัน จากนั้นจัดเรียงอาร์เรย์
ในส่วนนี้เราจะมาดูวิธีหาความแตกต่างที่แน่นอนระหว่างผลรวมของรากกับผลคูณของรากของสมการควอร์ติก สมการควอร์ติกเหมือน 𝑎𝑥4 +𝑏𝑥3 +𝑐𝑥2 +𝑑𝑥+ ผลงาน เราสามารถแก้สมการแล้วพยายามหาผลคูณและผลรวมของรากด้วยกระบวนการปกติบางอย่าง แต่นั่นต้องใช้เวลามากและวิธีการนั้นไม่ได้ผลมากนัก ในสมการแบบนี้ เรามีสองสูตร ผ
เราจะมาดูวิธีหาความแตกต่างระหว่างตัวเลข X ตัวแรกและตัวสุดท้ายของตัวเลข N โดยให้ตัวเลขและ X เพื่อแก้ปัญหานี้ เราต้องหาความยาวของตัวเลข จากนั้นตัดตัวเลข x สุดท้ายโดยใช้ตัวดำเนินการโมดูลัส หลังจากนั้นให้ตัดตัวเลขทั้งหมดออกจากตัวเลข ยกเว้น x หลักแรก จากนั้นรับส่วนต่างและส่งคืนผลลัพธ์ ให้ตัวเลขคือ N =568
ในที่นี้เราจะมาดูกันว่าเราจะค้นหาความแตกต่างที่แน่นอนระหว่างผลคูณของจำนวนเฉพาะทั้งหมดกับจำนวนเฉพาะของอาร์เรย์ได้อย่างไร เพื่อแก้ปัญหานี้ เราต้องตรวจสอบว่าตัวเลขเป็นจำนวนเฉพาะหรือไม่ วิธีหนึ่งที่เป็นไปได้สำหรับการทดสอบไพรมาลลิตี้คือการตรวจสอบจำนวนที่หารด้วยจำนวนใดๆ ระหว่าง 2 ถึงรากที่สองของตัวเลขนั้น
ในที่นี้เราจะมาดูกันว่าเราจะค้นหาความแตกต่างที่แน่นอนระหว่างผลรวมของจำนวนเฉพาะทั้งหมดกับจำนวนเฉพาะของอาร์เรย์ได้อย่างไร เพื่อแก้ปัญหานี้ เราต้องตรวจสอบว่าตัวเลขเป็นจำนวนเฉพาะหรือไม่ วิธีหนึ่งที่เป็นไปได้สำหรับการทดสอบไพรมาลลิตี้คือการตรวจสอบจำนวนที่หารด้วยจำนวนใดๆ ระหว่าง 2 ถึงรากที่สองของตัวเลขนั้น