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

Chuyển đổi mảng đã cho thành Tiến trình số học bằng cách thêm một phần tử trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để chuyển đổi mảng đã cho thành cấp số học bằng cách thêm một phần tử.

Đối với điều này, chúng tôi sẽ được cung cấp một mảng. Nhiệm vụ của chúng ta là chuyển đổi mảng đã cho thành một cấp số cộng bằng cách thêm một phần tử vào nó và trả về phần tử đã thêm. Nếu không thể, hãy trả về -1.

Ví dụ

#include<bits/stdc++.h>
using namespace std;
//returning the number to be added
int print_number(int arr[], int n){
   sort(arr,arr+n);
   int d = arr[1] - arr[0];
   int numToAdd = -1;
   bool numAdded = false;
   for (int i = 2; i < n; i++) {
      int diff = arr[i] - arr[i - 1];
      if (diff != d) {
         if (numAdded)
            return -1;
         if (diff == 2 * d) {
            numToAdd = arr[i] - d;
            //if number has been added
            numAdded = true;
         }
         //if not possible
         else
         return -1;
      }
   }
   //returning last element +
   //common difference
   if (numToAdd == -1)
      return (arr[n - 1] + d);
   //else return the chosen number
   return numToAdd;
}
int main() {
   int arr[] = { 1, 3, 5, 7, 11, 13, 15 };
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << print_number(arr, n);
}

ĐẦU RA

9