C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++のn人のmチームのペアの最小数と最大数


問題の説明

N コンテストの参加者はMに分割されました 各チームに少なくとも1人の参加者がいるように、何らかの方法でチームを編成します。競技後、同じチームの参加者の各ペアが友達になりました。

あなたの仕事は、競争の終わりまでに形成された可能性のある友達のペアの最小数と最大数を見つけるプログラムを書くことです。

アルゴリズム

1. We can obtain max pairs using below formula:
maxPairs = ((n – m) * (n – m + 1)) / 2
2. We can obtain min pairs using below formula:
minPairs = m * (((n - m) / m + 1) * ((n - m) / m)) / 2 + ceil((n - m) / double(m)) * ((n - m) % m);

#include <iostream>
#include <cmath>
using namespace std;
void getPairs(int n, int m){
   int maxPairs = ((n - m + 1) * (n - m)) / 2;
   int minPairs = m * (((n - m) / m + 1) * ((n - m) / m)) / 2 + ceil((n - m) / double(m)) * ((n - m) % m);
   cout << "Minimum pairs = " << minPairs << "\n";
   cout << "Maximum pairs = " << maxPairs << "\n";
}
int main(){
   getPairs(3, 2);
   return 0;
}

出力

上記のプログラムをコンパイルして実行する場合。次の出力を生成します-

Minimum pairs = 1
Maximum pairs = 1

  1. C++で指定された数kで割り切れるリンクリストの最大要素と最小要素

    リンクリストは、要素がポインタを介してリンクされている線形データ構造です。リンクリストの各要素またはノードには、データ部分とリンクがあります。または、次の要素へのポインタを順番に言うことができます。要素は、メモリ内で連続していない場所を取ることができます。 データ部分と次の要素へのリンクがある単一リンクリストが与えられます。もう1つの入力は数値Kです。タスクは、数値Kで割り切れるリンクリストの最大要素と最小要素を見つけることです。線形リンクリストは、一方向にのみ移動できます。各ノードで、データ部分の分割可能性をKで確認します。その数がこれまでに見つかった最大値または最小値である場合は、

  2. C++での単一リンクリストの最小および最大素数。

    問題の説明 n個の正の整数のリンクリストが与えられます。最小値と最大値を持つ素数を見つける必要があります。 指定されたリストが-の場合 10 -> 4 -> 1 -> 12 -> 13 -> 7 -> 6 -> 2 -> 27 -> 33 then minimum prime number is 2 and maximum prime number is 13 アルゴリズム 1. Find maximum number from given number. Let us call it maxNumber 2. Generate pri