数组中奇偶数索引元素的绝对差(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

更新于: 2019-7-30

489 查看

Kickstart Your Career

完成课程获得认证

开始
广告
© . All rights reserved.