Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ลดผลรวมของกำลังสองของผลรวมของคู่ N/2 ที่เกิดจากตัวเลข N ใน C++ . ให้น้อยที่สุด


คำชี้แจงปัญหา

กำหนดอาร์เรย์ขององค์ประกอบ n ภารกิจคือการสร้างคู่ n/2 ในลักษณะที่ผลรวมของกำลังสองของคู่ n/2 นั้นน้อยที่สุด

ตัวอย่าง

ถ้าอาร์เรย์ที่กำหนดคือ −

arr[] ={5, 10, 7, 4}ผลรวมของสี่เหลี่ยมจัตุรัสขั้นต่ำคือ 340 หากเราสร้างคู่เป็น (4, 10) และ ( 5, 7)

อัลกอริทึม

<ก่อน>1. เรียงลำดับอาร์เรย์2 ใช้ตัวแปรสองตัวที่ชี้ไปที่เริ่มต้นและสิ้นสุดดัชนีของอาร์เรย์3 คำนวณผลรวมดังนี้ sum =arr[start] + arr[end]; ผลรวม =ผลรวม * ผลรวม;4. ทำซ้ำขั้นตอนนี้จนถึงเริ่มต้น

ตัวอย่าง

#include #include #define SIZE(arr) (sizeof(arr) / sizeof(arr[0])) โดยใช้ namespace std;int getMinSquareSum(int *arr, int n) { sort( arr, arr + n); int minSum =0; int เริ่มต้น =0; int end =n - 1; ในขณะที่ (เริ่มต้น <สิ้นสุด) { ผลรวม int =arr [เริ่มต้น] + arr [สิ้นสุด]; ผลรวม *=ผลรวม; minSum +=ผลรวม; ++เริ่มต้น; --จบ; } คืนค่า minSum;}int main() { int arr[] ={5, 10, 7, 4}; ความละเอียด int =getMinSquareSum(arr, SIZE(arr)); cout <<"ผลรวมสี่เหลี่ยมขั้นต่ำ:" < 

ผลลัพธ์

เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้น มันสร้างผลลัพธ์ต่อไปนี้ -

ผลรวมสี่เหลี่ยมขั้นต่ำ:340