Cプログラミング

 Computer >> コンピューター >  >> プログラミング >> Cプログラミング
  1. 範囲[L、R]内のすべての可能な互いに素な異なる要素のペア?

    ここでは、範囲から互いに素なペアの数を数える方法を説明します。この場合、数は1つのペアより多くは表示されません。 論理について説明する前に、互いに素な数を見てみましょう。互いに素な数は、正の整数の約数が1つしかない数、つまり1です。つまり、これら2つの数のGCDは1であると言えます。 ここでは、下限と上限を示しています。下限と上限が1と6の場合、3つのペアがあります。これらは(1、2)、(3、4)、(5、6)です この問題を解決するためのアプローチは次のようなものです。数字が連続している場合、それらは互いに素です。したがって、カウントは(R – L + 1)/2になります。 (R – L

  2. 先行ゼロなしのN桁とベースBのすべての可能な数?

    ここで1つの問題が発生します。NとベースBがあります。私たちのタスクは、先頭に0を付けずにベースBのすべてのN桁の数字を数えることです。したがって、Nが2でBが2の場合、00、01、10、11の4つの数字があります。したがって、このセクションで有効なのはそのうちの2つだけです。これらは10、11であり、先頭に0はありません。 ベースがBの場合、0からB –1の異なる数字があります。したがって、B N さまざまなN桁の値を生成できます(先頭の0を含む)。最初の桁は0mです。無視すると、B N-1があります。 番号。したがって、先行0がない合計N桁の数字はB Nです。 – b N-1

  3. 与えられた文字列から形成できる任意の長さのすべての可能な文字列?

    このセクションでは、任意の長さのすべての可能な文字列を生成する方法を説明します。これにより、文字の各組み合わせを使用して文字列を作成します。たとえば、文字列がABCの場合、次のように生成されます-{A、B、C、AB、BA、BC、CB、CA、AC、ABC、ACB、BAC、BCA、CAB、CBA} アイデアを得るために例を見てみましょう。 アルゴリズム printAllString(str) Begin n:=文字列の長さstrcountは2^ n – 1で、カウントする数値0ごとに、sub_str:=0からnの範囲のjに対して空の文字列を実行し、カウンターのj番目のビットが設定されている

  4. C / C ++のsystem()で素晴らしいものはありますか?

    ここでは、CまたはC ++でsystem()関数を使用することで驚くべき結果が得られます。システム機能は、Windows、Linux、およびMACオペレーティングシステムに存在します。この関数は、コマンドラインで記述できるシステムコマンドを実行するために使用されます。 ここでは、システムがCまたはC++で機能する場合の2つの使用法を示します。 1つ目は、C++プログラムを使用してIP構成の詳細を取得することです。 例 #include <iostream> #include <cstdlib> using namespace std; int main() { &nb

  5. n番目のフィボナッチ数が10の倍数であるかどうかを確認する効率的な方法は?

    ここでは、n番目のフィボナッチ項が10の倍数であるかどうかを確認する1つの効率的な方法を示します。フィボナッチ項が{0、1、1、2、3、5、8、13、21、34、55、89、144、233、377、610、987}であるとします。だからここで15番目 (0から数えて)フィボナッチ項は10で割り切れます。16の場合はtrueを返します。 最も簡単な方法の1つは、指定された項までのフィボナッチ数を生成し、それが10で割り切れるかどうかを確認することです。ただし、このソリューションは、長期的には機能しないため、適切ではありません。 別の良いアプローチは以下のようなものです- フィボナッチ用語-

  6. 1からnまでの2進数を生成する興味深い方法は?

    ここでは、1からnまでの2進数を生成するための興味深い方法を1つ紹介します。ここではキューを使用しています。最初、キューは最初の2進数「1」を保持します。ここで、キューから要素を繰り返し削除して印刷し、フロントアイテムの最後に0を追加し、フロントタイムの最後に1を追加して、キューに挿入します。アイデアを得るためのアルゴリズムを見てみましょう。 アルゴリズム genBinaryNumbers(n) Begin    define empty queue.    insert 1 into the queue    while n is

  7. すべての素数をnより小さくするための興味深い解決策はありますか?

    ここでは、効率的な方法でn未満のすべての素数を生成する方法を説明します。このアプローチでは、ウィルソンの定理を使用します。彼の定理によれば、数kが素数の場合、((k --1)!+ 1)modkは0になります。このアイデアを得るためのアルゴリズムを見てみましょう。 このアイデアは、大きな整数をサポートしないため、CまたはC++のような言語では直接機能しません。階乗は多数を生成します。 アルゴリズム genAllPrime(n) Begin    fact := 1    for i in range 2 to n-1, do    

  8. 二分木の反時計回りのスパイラルトラバーサル?

    ここで、1つの興味深い問題が発生します。二分木が1つあります。反時計回りにツリーをトラバースする必要があります。トラバーサルは以下のようになります- トラバーサルシーケンスは、1、8、9、10、11、12、13、14、15、3、2、4、5、6、7です。 アルゴリズム antiClockTraverse(root) Begin    i := 1, j := height of the tree    flag := false    while i <= j, do       if fl

  9. 与えられた角度からの弧の長さ?

    ここでは、指定された角度から弧長を取得する方法を説明します。 1つの円が与えられます。円の半径が与えられます。私たちのタスクは、半径と角度を使用して弧の長さを取得することです。角度は度単位です。 ここでrとxが与えられます。 Lの値を見つける必要があります。式は次のようになります- 𝐿 = 2𝜋𝑟 ∗ (𝑥/360) 例 #include <iostream> using namespace std; float getArcLength(float r, float x){    return (2 * 3.1415f * r)

  10. 半円に内接する長方形に内接する円の面積?

    1つの半円が与えられていると考えてみましょう。その半径はRです。長さl、幅bの1つの長方形がその半円に内接しています。これで、半径rの1つの円が長方形に内接します。内側の円の領域を見つける必要があります。 半円内に内接できる最大の長方形の長さはl、幅はbであることがわかっているので、lとbの式は次のようになります- さて、長方形内に内接できる最大の円の半径はrで、以下のようになります- 例 #include <iostream> #include <cmath> using namespace std; float innerCircl

  11. 正方形の中の葉の面積?

    ここでは、正方形ABCDの内側にある葉のような領域を取得する方法を説明します。正方形の各辺の長さは「a」です。 葉には2つの等しい部分があります。各部分の面積はpと言われ、今は- そして、完全な葉の面積は2pです。 例 #include <iostream> using namespace std; float leafArea(float a){    return (a * a * (3.1415/2 - 1)); } int main() {    float square_side = 7.0f;   &nb

  12. 与えられた半径を持つn辺の正多角形の面積?

    ここでは、半径が指定されているn辺の正多角形の面積を取得する方法を説明します。ここで、半径は任意の頂点の中心からの距離です。この問題を解決するために、中心から片側に垂線を1つ描きました。各辺の長さを「a」とします。垂線は側面を2つの部分に分割しています。各部分の長さはa/2です。垂線と1つの半径は、角度xを形成しています。半径の長さをhとします。 ここでは、ポリゴンがN個の等しい三角形に分割されていることがわかります。したがって、N辺のポリゴンの場合、N個の三角形に分割されます。したがって、中心の角度は360度です。これは、360°/ Nの異なる角度に分割されます(ここでは360°/

  13. ルーローの三角形の面積?

    ここでは、以下のようにルーローの三角形の面積を計算する方法を説明します。ルーローの三角形の中には正三角形が1つあります。高さをhとすると、この形は3つの円が交差する形になります。 3つの扇形があります。各セクターの面積は- 正三角形の面積は3回加算されるので、減算する必要があります。したがって、最後の領域は- 例 #include <iostream> #include <cmath> using namespace std; float areaReuleaux(float h) {    if (h < 0) //if

  14. 隣接するすべての要素間の絶対差が1より大きいように、最初のN個の自然数を配置しますか?

    1である、それらの1つの順列を取得することです。そのような順列が存在しない場合は、-1を返します。 アプローチは簡単です。欲張りアプローチを使用します。すべての奇数を昇順または降順で並べ替え、次にすべての偶数を降順または昇順で並べ替えます アルゴリズム ArrangeN(n) Begin    if N is 1, then return 1    if N is 2 or 3, then return -1 as no such permutation is not present    even_max and odd_max

  15. 母音と子音の相対的な位置を変えずに単語を配置しますか?

    n個の要素(n <10)を持つ文字列があるとします。母音と子音の相対的な位置を変えずに弦を配置できる方法の数を見つける必要があります。 アプローチは簡単です。与えられた文字列の母音と子音の数を数える必要があります。次に、母音のみを配置できる方法の数を見つけ、次に子音のみを配置する方法の数を見つけます。その後、これら2つの結果を乗算して次のようにします。トータルウェイ。 アルゴリズム ArrangeWayCount(str) Begin    define an array ‘freq’ to store frequency.   &nb

  16. シングルムーブを使用してkによって移動された配列要素?

    シャッフルされた順序で1からnまでのn個の要素を持つ配列があるとします。別の整数Kが与えられます。バドミントンをするために列に並んでいるのはN人です。最初の2人のプレーヤーはプレーに行き、次に敗者はキューの最後に行き、配置します。勝者は、キューの次の人と対戦します。誰かがK回連続で勝つまでプレイします。その後、そのプレーヤーが勝者になります。 キューが[2、1、3、4、5]のようで、K =2の場合、出力は5になります。説明を参照してください- (2、1)プレイ、2勝、つまり1がキューに追加されます。キューは[3、4、5、1](2、3)プレイ、3勝、つまり2がキューに追加されます。キューは[

  17. 絶対差の合計が最小の配列要素?

    ここで、1つの興味深い問題が発生します。 N個の要素を持つ1つの配列「a」を使用しています。 | a [0]--x|となるような要素xを見つける必要があります。 + | a [1] --x|+…+|a [n-1] --x |最小化されます。次に、最小化された合計を見つける必要があります。 配列を次のようにします:{1、3、9、6、3}ここで、xは3です。したがって、合計は|1-3|です。 + | 3-3 | + | 9-3 | + | 6-3 | + | 3-3 | =11. この問題を解決するには、配列の中央値をxとして選択する必要があります。配列サイズが偶数の場合、2つの中央値があり

  18. 複数回出現する配列要素?

    ここで1つの問題が発生します。アレイが1つあります。私たちのタスクは、頻度が1を超える要素を見つけることです。要素が{1、5、2、5、3、1、5、2、7}であるとします。ここでは、1回が2回、5回が3回、2回が3回発生し、その他は1回だけ発生しています。したがって、出力は{1、5、2}になります。 アルゴリズム moreFreq(arr、n) Begin    define map with int type key and int type value    for each element e in arr, do     &n

  19. プライム周波数の配列要素?

    配列が1つあるとします。配列の素数に存在する要素の数を数える必要があります。したがって、配列が{1、2、2、0、1、5、2、5、0、0、1、1}の場合、1は4回存在し、2は3回存在し、0は3回存在します。そして5は2回存在します。したがって、素数回発生した3つの要素{2、0、5}があります。したがって、カウントは3になります。 アルゴリズム countPrimeOccurrence(arr、n) Begin    count := 0    define map with int type key and int type value   &

  20. 前の数値を除算した後の配列の合計?

    ここで、1つの興味深い問題が発生します。 1つの配列を取得し、前の要素で除算した後、各要素を取得して合計を求めます。配列が{5、6、7、2、1、4}であると考えてみましょう。その場合、結果は5 +(6/5)+(7/6)+(2/7)+(1/2)+(4/1)=12.15238になります。コンセプトを得るためのアルゴリズムを見てみましょう。 アルゴリズム divSum(arr、n) begin    sum := arr[0]    for i := 1 to n-1, do       sum := sum + arr[i]

Total 1436 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:24/72  20-コンピューター/Page Goto:1 18 19 20 21 22 23 24 25 26 27 28 29 30