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

เพิ่มผลรวมของ arr[i]*i ให้ใหญ่สุดใน C++


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

กำหนดอาร์เรย์ของจำนวนเต็ม N คุณได้รับอนุญาตให้จัดเรียงองค์ประกอบของอาร์เรย์ใหม่ ภารกิจคือการหาค่าสูงสุดของ Σarr[i]*i โดยที่ i =0, 1, 2, .. n – 1.

หากอาร์เรย์อินพุต ={4, 1, 6, 2} ผลรวมสูงสุดจะเป็น 28 หากเราจัดเรียงองค์ประกอบใหม่ตามลำดับการจัดเรียง−

{1, 2, 4, 6} =(1 * 0) + (2 * 1) + (4 * 2) + (6 * 3) =28

อัลกอริทึม

<ก่อน>1. เรียงลำดับอาร์เรย์จากน้อยไปมาก2 วนซ้ำในอาร์เรย์และคูณแต่ละองค์ประกอบอาร์เรย์ด้วย 1 โดยที่ i =0, 1, 2, n – 1.3 ผลตอบแทนรวม

ตัวอย่าง

#include ใช้เนมสเปซ std;int getMaxSum(int *arr, int n){ sort(arr, arr + n); int sum =0; สำหรับ (int i =0; i