陣列中奇偶數索引元素的絕對差(C++)?
這裡我們將瞭解如何獲取陣列中奇偶數索引元素的絕對差。絕對差表示如果一對數相減為負數,則取絕對值。例如,這些數為 {1, 2, 3, 4, 5, 6, 7, 8, 9}。則偶數位置元素為 1、3、5、7、9(從 0 開始),奇數位置元素為 2、4、6、8。因此偶數位置資料的差為 |1 - 3| = 2,接著 |2 - 5| = 3,|3 - 7| = 4,|4 - 9| = 5 同理,奇數位置元素的差將為 4。
演算法
offEvenDiff(arr, n)
begin even := 0 odd := 0 for i := 0 to n-1, do if i is even, then even := |even – arr[i]| else odd := |odd – arr[i]| done return (odd,even) end
示例
#include<iostream>
#include<cmath>
using namespace std;
void oddEvenDiff(int arr[], int n, int &o, int &e) {
int even = 0;
int odd = 0;
for (int i = 0; i < n; i++) {
if (i % 2 == 0) {
even = abs(even - arr[i]); //get the even difference
} else {
odd = abs(odd - arr[i]);
}
}
e = even;
o = odd;
}
main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int odd, even;
oddEvenDiff(arr, n, odd, even);
cout << "The odd and even differences are: " << odd << " and " << even;
}輸出
The odd and even differences are: 4 and 5
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP