Computer >> Máy Tính >  >> Lập trình >> C ++

Sự khác biệt tuyệt đối của các phần tử được lập chỉ mục chẵn và lẻ trong một Mảng (C ++)?

Ở đây chúng ta sẽ thấy cách chúng ta có thể nhận được sự khác biệt tuyệt đối của các phần tử chẵn và lẻ trong một mảng. Sự khác biệt tuyệt đối chỉ ra rằng nếu sự khác biệt của một cặp là âm thì giá trị tuyệt đối sẽ được lấy. Ví dụ, cho các số là {1, 2, 3, 4, 5, 6, 7, 8, 9}. Vì vậy, các phần tử ở vị trí chẵn là 1, 3, 5, 7, 9 (bắt đầu từ 0), và các phần tử ở vị trí lẻ là 2, 4, 6, 8. Vì vậy, sự khác biệt đối với dữ liệu đặt chẵn là | 1 - 3 | =2 thì | 2 - 5 | =3, | 3 - 7 | =4 và | 4 - 9 | =5 tương tự, sự khác biệt của số lẻ các vị trí sẽ là 4.

Thuật toán

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

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]); //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;
}

Đầu ra

The odd and even differences are: 4 and 5