Chúng ta sẽ xem cách lấy hiệu tuyệt đối của các phần tử ở chỉ số chẵn và lẻ trong mảng. Hiệu tuyệt đối nghĩa là nếu hiệu của một cặp là âm, sẽ lấy giá trị tuyệt đối. Ví dụ: mảng {1, 2, 3, 4, 5, 6, 7, 8, 9}. Các phần tử vị trí chẵn (bắt đầu từ 0) là 1, 3, 5, 7, 9; vị trí lẻ là 2, 4, 6, 8. Hiệu cho vị trí chẵn: |1-3|=2, |2-5|=3, |3-7|=4, |4-9|=5. Tương tự cho vị trí lẻ cũng là 4.
Thuật toán
offEvenDiff(arr, n)
bắt đầu
even := 0
odd := 0
for i := 0 đến n-1, thực hiện
nếu i là chẵn thì
even := |even – arr[i]|
ngược lại
odd := |odd – arr[i]|
done
trả về (odd, even)
kết thúc
Ví dụ
#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]); // lấy hiệu chẵn
} else {
odd = abs(odd - arr[i]);
}
}
e = even;
o = odd;
}
int 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;
return 0;
}
Kết quả
The odd and even differences are: 4 and 5