Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

배열(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