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
-
C++で指定された配列の要素の階乗のGCDを検索します
N個の要素を持つ配列Aがあるとします。配列のすべての要素の階乗のGCDを見つける必要があります。要素が{3、4、8、6}であるとすると、階乗のGCDは6です。ここでトリックを確認します。 2つの数値のGCDは、両方の数値を除算する最大の数値であるため、2つの数値の階乗のGCDは、最小の数値自体の階乗の値です。だから3の公約数!と5! 3です! =6. 例 #include <iostream> using namespace std; long fact(int n){ if(n <= 1) return
-
C ++では、すべての要素がk以上になるまで配列の要素を追加します。
配列 −配列は、同じデータ型の要素のコンテナであり、その要素のインデックスは0です。 この問題では、整数の配列を使用します。そして、すべての要素が指定された数より大きいかどうかを確認します。ここでは、配列のすべての要素が指定された数k以上であるかどうかを確認します。そうでない場合は、配列の2つの最小要素を追加し、この合計を1つの要素として扱います。次に、新しいアレイの同じ条件を再度確認します。条件が真であることが判明した場合、合計が実行された回数が返されます。 Array = { 2, 6,3,12, 7} K = 5 Output : 1 説明 −最初に、すべての要素がkより大きいかどう