Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

แปลงอาร์เรย์ที่กำหนดเป็น Arithmetic Progression โดยการเพิ่มองค์ประกอบใน C++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่จะแปลงอาร์เรย์ที่กำหนดเป็นความก้าวหน้าทางคณิตศาสตร์โดยการเพิ่มองค์ประกอบ

สำหรับสิ่งนี้เราจะได้รับอาร์เรย์ งานของเราคือการแปลงอาร์เรย์ที่กำหนดให้เป็นความก้าวหน้าทางคณิตศาสตร์โดยการเพิ่มองค์ประกอบเดียวและส่งคืนองค์ประกอบที่เพิ่มเข้ามา หากไม่สามารถทำได้ ให้คืนค่า -1

ตัวอย่าง

#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);
}

ผลลัพธ์

9