透過在 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP