首頁 > 後端開發 > C++ > 在C語言中,值和索引總和的最大絕對差

在C語言中,值和索引總和的最大絕對差

WBOY
發布: 2023-08-25 20:25:03
轉載
1169 人瀏覽過

在C語言中,值和索引總和的最大絕對差

我們得到了一個整數陣列。任務是計算值和指數和的最大絕對差。也就是說,對於數組中的每對索引(i,j),我們必須計算| Arr[i] - A[j] | Arr[i] - A[j] | Arr[i] - A[j] | Arr[i] - A[j] |i-j|並找出可能的最大總和。這裡 |A|表示 A 的絕對值。若陣列有4 個元素,則索引為0,1,2,3,唯一對將為( (0,0), (1,1), (2,2), (3,3) , (0, 1), (0,2), (0,3), (1,2), (1,3), (2,3) )。

輸入 − Arr[] = { 1,2,4,5 }

#輸出 − 值與指數總和的最大絕對差− 7

解釋 - 索引對和| A[i]-A[j] | A[i]-A[j] |我-j |如下

1. (0,0), (1,1), (2,2), (3,3)--------- |i-j| for each is 0.
2. (0,1)---------- |1-2| + |0-1|= 1+1 = 2
3. (0,2)---------- |1-4| + |0-2|= 3+2 = 5
4. (0,3)---------- |1-5| + |0-3|= 4+3 = 7
5. (1,2)---------- |2-4| + |1-2|= 2+1 = 3
6. (1,3)---------- |2-5| + |1-3|= 3+2 = 5
7. (2,3)---------- |4-5| + |2-3|= 1+1 = 2
Maximum value of such a sum is 7.
登入後複製

輸入 − Arr[] = { 10,20,21 }

#輸出 − 值和索引差的最大絕對值− 13

#解釋 − 索引對和| A[i]-A[j] | | i-j | 如下所示

1. (0,0), (1,1), (2,2)--------- |i-j| for each is 0.
2. (0,1)---------- |10-20| + |0-1|= 10+1 = 11
3. (0,2)---------- |10-21| + |0-2|= 11+2 = 13
4. (1,2)---------- |20-21| + |1-2|= 1+1 = 2
Maximum value of such a sum is 13.
登入後複製

下面程式中使用的方法如下:

  • 我們使用一個整數陣列Arr[]

  • 函數maxabsDiff(int arr[],int n)來計算值和索引總和的最大絕對差。

  • 我們將變數result初始化為-1。

  • 在for迴圈中從陣列的開頭遍歷整數陣列。

  • 在嵌套的for迴圈中遍歷剩餘的元素,併計算元素值和索引i、j的絕對和(abs(arr[i] - arr[j]) abs (i - j)),並將其儲存在變數absDiff中。

  • 如果這個新計算的和大於之前的和,則將其儲存在'result'中。

  • 在遍歷整個陣列後傳回result。

範例

 示範

#include <stdio.h>
#include <math.h>
// Function to return maximum absolute difference
int maxabsDiff(int arr[], int n){
   int result = 0;
   for (int i = 0; i < n; i++) {
      for (int j = i; j < n; j++) {
         int absDiff= abs(arr[i] - arr[j]) + abs(i - j);
         if (absDiff > result)
            result = absDiff;
      }
   }
   return result;
}
int main(){
   int Arr[] = {1,2,4,1,3,4,2,5,6,5};
   printf("Maximum absolute difference of value and index sums: %d", maxabsDiff(Arr,10));
   return 0;
}
登入後複製

輸出

如果我們執行上面的程式碼,它將產生以下輸出-

Maximum absolute difference of value and index sums: 13
登入後複製

以上是在C語言中,值和索引總和的最大絕對差的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板