C++を使用した等差数列の欠落数
等差数列の要素を順番に表す配列があるとします。 1つの要素が欠落しています。不足している要素を見つける必要があります。したがって、arr =[2、4、8、10、12、14]の場合、6が欠落しているため、出力は6になります。
二分探索を使用して、この問題を解決できます。真ん中の要素に移動し、真ん中と真ん中の隣の違いがdiffと同じかどうかを確認します。そうでない場合、欠落している要素はインデックスmidとmid+1の間に存在します。中央の要素がAPのn/2番目の要素である場合、欠落している要素は右半分にあり、そうでない場合は左半分にあります。
>例(C ++)
#include <iostream> using namespace std; #define INT_MAX 999999 class Progression { public: int missingUtil(int arr[], int left, int right, int diff) { if (right <= left) return INT_MAX; int mid = left + (right - left) / 2; if (arr[mid + 1] - arr[mid] != diff) return (arr[mid] + diff); if (mid > 0 && arr[mid] - arr[mid - 1] != diff) return (arr[mid - 1] + diff); if (arr[mid] == arr[0] + mid * diff) return missingUtil(arr, mid + 1, right, diff); return missingUtil(arr, left, mid - 1, diff); } int missingElement(int arr[], int n) { int diff = (arr[n - 1] - arr[0]) / n; return missingUtil(arr, 0, n - 1, diff); } }; int main() { Progression pg; int arr[] = {2, 4, 8, 10, 12, 14}; int n = sizeof(arr) / sizeof(arr[0]); cout << "The missing element is: " << pg.missingElement(arr, n)<<endl; }
入力
[2,4,8,10,12,14]
出力
The missing element is: 6
-
C++での算術数
算術数は、すべての正の除数の平均が整数である数です。つまり、除数の数が除数の合計を除算できる場合、nは算術数です。 概念をよりよく理解するために例を見てみましょう。 Input : n = 6 Output : YES Explanation : Divisors are 1 , 2 , 3 , 6 Sum = 1+2+3+6 = 12 Number of divisors = 4 Sum of divisors / number of divisor = 12 / 4 = 3 アルゴリズム Step 1 : Calculate the sum of divisors and store i
-
C++のCHAR_BIT
CHAR_BITは、charのビット数です。これは、C++言語の「limits.h」ヘッダーファイルで宣言されています。 1バイトあたり8ビットです。 これがC++言語のCHAR_BITの例です 例 #include <bits/stdc++.h> using namespace std; int main() { int x = 28; int a = CHAR_BIT*sizeof(x); stack<bool> s; cout << "T