ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่จะแปลงอาร์เรย์ที่กำหนดเป็นความก้าวหน้าทางคณิตศาสตร์โดยการเพิ่มองค์ประกอบ
สำหรับสิ่งนี้เราจะได้รับอาร์เรย์ งานของเราคือการแปลงอาร์เรย์ที่กำหนดให้เป็นความก้าวหน้าทางคณิตศาสตร์โดยการเพิ่มองค์ประกอบเดียวและส่งคืนองค์ประกอบที่เพิ่มเข้ามา หากไม่สามารถทำได้ ให้คืนค่า -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