-
C ++を使用して、数値の偶数因子の合計を求めます。
このセクションでは、効率的な方法で、ある数のすべての素因数の合計を取得する方法を説明します。 n =480と言う数があります、これのすべての要因を取得する必要があります。 480の素因数は2、2、2、2、2、3、5です。すべての偶数の因数の合計は2 + 2 + 2 + 2 + 2 =10です。この問題を解決するには、この規則に従う必要があります。 − 数値が2で割り切れる場合は、それらを合計に加算し、数値を2で繰り返し除算します。 これで、数値は奇数になります。したがって、均等な要素は見つかりません。次に、それらの要因を単に無視します。 より良いアイデアを得るためのアルゴリズムを見てみ
-
C ++を使用して、数値の奇数因子の合計を求めます。
このセクションでは、効率的な方法で、数値のすべての奇数の素因数の合計を取得する方法を説明します。 n =1092と言う数があります、これのすべての要因を取得する必要があります。 1092の素因数は2、2、3、7、13です。すべての奇数の因数の合計は3 + 7 + 13 =23です。この問題を解決するには、この規則に従う必要があります- 数値が2で割り切れる場合は、その係数を無視して、数値を2で繰り返し除算します。 これで、数値は奇数になります。ここで、数値の3から平方根まで、数値が現在の値で割り切れる場合は、合計で係数を加算し、現在の数値で除算して数値を変更してから続行します。 最後に、残り
-
C ++を使用して、pl/sqlで数値の階乗を検索します。
このセクションでは、PL/SQLを使用して数値の階乗を見つける方法を説明します。 PL / SQLコードでは、コマンドの一部のグループは、関連するステートメントの宣言のブロック内に配置されます。 数値の階乗は、基本的に1からnまでのすべての整数の乗算です。ここでnは指定された数値です。だからn! =n *(n – 1)*(n – 2)*…* 2*1。 例(PL / SQL) DECLARE fact number :=1; n number := &1; BEGIN while n > 0 loop
-
C ++を使用して、文字列内の最初に繰り返される文字を検索します。
文字列があるとします。繰り返される最初の文字を見つける必要があります。文字列は「HelloFriends」なので、最初に繰り返される文字はlになります。次々と2つのlがあるので。 これを解決するために、ハッシュ手法を使用します。ハッシュテーブルを1つ作成し、各文字を1つずつスキャンします。文字が存在しない場合はハッシュテーブルに挿入し、すでに存在する場合はその文字を返します。 例 #include<iostream> #include<unordered_set> using namespace std; char getFirstRepeatingChar(stri
-
C ++を使用して、数値の桁の頻度を見つけます。
ここでは、数字の桁の頻度を取得する方法を説明します。数値が12452321、数字D =2のようで、頻度が3であるとします。 この問題を解決するには、数値の最後の桁を取得し、これがdに等しいかどうかを確認します。等しい場合は、カウンターを増やし、数値を10で割って数値を減らします。このプロセスは、数がなくなりました。 例 #include<iostream> using namespace std; int countDigitInNum(long long number, int d) { int count = 0; whil
-
C ++を使用して、配列内の数値の頻度を見つけます。
配列があるとします。 n個の異なる要素があります。配列内の1つの要素の頻度を確認する必要があります。 A =[5、12、26、5、3、4、15、5、8、4]とすると、5の頻度を見つけようとすると、3になります。 これを解決するために、左から配列をスキャンします。要素が指定された数と同じである場合は、カウンターを増やします。それ以外の場合は、配列がなくなるまで次の要素に進みます。 例 #include<iostream> using namespace std; int countElementInArr(int arr[], int n, int e) { &nbs
-
C ++を使用して、N階乗の合計の単位桁を求めます。
5の階乗として、単位の場所は0であるため、5を超えると、単位の場所の変更には寄与しません。 N =4以上の場合は3になります。単位の場所のグラフを作成し、それをプログラムで使用します。 例 #include<iostream> #include<cmath> using namespace std; double getUnitPlace(int n) { int placeVal[5] = {-1, 1, 3, 9, 3}; if(n > 4){ n = 4; &
-
C ++を使用した再帰を使用してln(N!)の値を見つけます。
数Nがあるとすると、再帰を使用してln(N!)を見つけることがタスクです。 ln()は基本的に対数ベースeです。これを解決するために、この式を使用できます- $$ \ ln \ lgroup N!\ rgroup =\ ln \ lgroup N * \ lgroup N-1 \ rgroup * \ lgroup N-2 \ rgroup * \ dotsm * 2 * 1 \ rgroup =\ ln \ lgroup N \ rgroup + \ ln \ lgroup N + 1 \ rgroup + \ dotsm + \ ln \ lgroup 1 \ rgroup $$ 例
-
C++のメルセンヌ素数。
説明 数学では、メルセンヌ素数は2の累乗より1少ない素数です。つまり、ある整数nに対してMn =2n −1の形式の素数です。 入力された正の整数nよりも小さいすべてのメルセンヌ素数を出力するC++プログラムを記述します。 メルセンヌ素数を与える指数nは2、3、5、7、...であり、結果のメルセンヌ素数は3、7、31、127です。 アルゴリズム 1. Generate all the primes less than or equal to the given number n 2. Iterate through all numbers of the form 2n-1 and chec
-
C++でのミッドスクエアハッシュ。
問題の説明 ミッドスクエア法は、疑似乱数を生成する方法です。この方法はジョンフォンノイマンによって発明され、1949年の会議で説明されました この手法では、初期シード値が取得され、2乗されます。 真ん中からいくつかの数字が抽出され、これらの抽出された数字が新しいシードとして使用される数字を形成します。 3456をシードとして取り上げましょう。その正方形は11943936です 真ん中の4桁を新しいシード、つまり9439とします。その正方形は89094721 真ん中の4桁を新しいシード、つまり0947として使用します このプロセスを繰り返します アル
-
C++でソートされた順序で2つのソートされていない配列をマージします。
問題の説明 ソートされていない2つの配列を受け取り、それらをソートされた順序で新しい配列にマージする関数を記述します。 arr1[] = {10, 5, 7, 2} arr2[] = {4, 17, 9, 3} result[] = {2, 3, 4, 5, 7, 9, 10, 17} アルゴリズム 1. Merge two unsorted array into new array 2. Sort newly create array 例 #include <iostream> #include <algorithm> #define SIZE(arr) (size
-
2つの異なる配列の要素をC++の3番目の配列に交互にマージします。
問題の説明 2つの配列がある場合、結合された配列が1番目と2番目の配列の代替要素を持つように2つの配列を結合する必要があります。配列の1つに追加の要素がある場合、これらの要素は結合された配列の最後に追加する必要があります。 arr1[] = {10, 20, 30, 40} arr2[] = {-10, -20, -30, -40} result[] = {10, -10, 20, -20, 30, -30, 40, -40} アルゴリズム 1. Traverse both arrays and one by one put elements into result array. 2. If
-
C++を使用して2つの並べ替えられたリンクリストをマージします。
問題の説明 与えられた2つのソートされた単一リンクリスト。 2つの並べ替えられたリンクリストをマージする関数を記述します List1: 10->15->17->20 List2: 5->9->13->19 Result: 5->9->10->13->15->17->19->20 アルゴリズム 1. Traverse both lists 1.1. If list1->data < list2->data 1.1.1 Add lis
-
C++を使用して2つのソートされた配列をマージします。
問題の説明 与えられた2つのソートされた配列リスト。与えられた2つのソートされた配列を1つにマージする関数を記述します Arr1[] = {10,15, 17, 20} Arr2[] = {5, 9, 13, 19} Result[] = {5, 9, 10, 13, 15, 17, 19, 20} アルゴリズム 1. Traverse both array 1.1. If arr1[i] < arr2[j] 1.1.1. Add arr[i] to new array 1.1
-
C++を使用して2つのバイナリ最大ヒープをマージします。
問題の説明 配列として2つのバイナリ最大ヒープが与えられた場合、を単一の最大ヒープにマージします。 Heap1[] = {20, 17, 15, 10} Heap2[] = {19, 13, 7} Result[] = {20, 19, 15, 13, 17, 7, 10} アルゴリズム 1.Create an array to store result 2. Copy both given arrays one by one to result array 3. Build heap to construct full merged max heap 例 #include <iost
-
C++を使用してリンクリストのソートをマージします。
問題の説明 リンクリストが与えられます。マージソートアルゴリズムを使用してソートします List: 10->20->8-17->5->13->4 Sorted list: 4->5->8->10->13->17->20 アルゴリズム 1. If head is NULL or list contains only one element then return list 2. Create two lists by dividing original list into 2 parts 3. Sort first and se
-
C++を使用して二重リンクリストのソートをマージします。
問題の説明 二重にリンクされたリストが与えられます。マージソートアルゴリズムを使用してソートします List: 10->20->8-17->5->13->4 Sorted list: 4->5->8->10->13->17->20 アルゴリズム 1. If head is NULL or list contains only one element then return list 2. Create two lists by dividing original list into 2 parts 3. Sort first
-
C++を使用して重複する間隔をマージします。
問題の説明 任意の順序の時間間隔のセットを指定して、重複するすべての間隔を1つにマージし、相互に排他的な間隔のみを持つべき結果を出力します 与えられた間隔のセットは{{12、14}、{11、13}、{20、22}、{21、23}}そして 間隔{12、14}と{11、13}は互いにオーバーラップしているため、{11、14}としてマージします 間隔{20、22}と{21、23}は互いに重複しているため、{20、23}としてマージします アルゴリズム 1. Sort the intervals based on increasing order of starting time
-
C++を使用して1つの文字列を別の文字列に変換するための削除と挿入の最小数。
説明 それぞれサイズmとnの2つの文字列str1とstr2が与えられます。タスクは、str1から/に最小数の文字を削除して挿入し、str2に変換することです。 Str1 = “tutorialspoint” Str2 = “tutorials” To transform str1 to str2 we have to delete five characters i.e. “point” from str1. アルゴリズム 1. Find longest common subsequence of str1 and st
-
C++で文字列回文を作成するための削除の最小数。
問題の説明 サイズ「n」の文字列が与えられます。タスクは、文字列回文を作成するために最小数の文字を削除することです。 指定された文字列が「abcda」の場合、最初と最後を除く任意の2文字を削除して、回文にすることができます。 文字「b」と「c」を削除すると、「ada」文字列は回文になります 文字「c」と「d」を削除すると、「aba」文字列は回文になります 文字「b」と「d」を削除すると、「aca」文字列は回文になります アルゴリズム 1. Find longest palindromic subsequence of given string. Let’s