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

C++でKグラスを満たすために必要なボトルの最小数


問題の説明

与えられたN個のグラスに水があり、それぞれの容量のリスト。タスクは、正確にK個のグラスに記入するために必要なボトルの最小数を見つけることです。各ボトルの容量は100ユニットです。

N =5、K =4の場合、capacity [] ={1、2、3、2、1}。

  • 容量2、3、2でグラスを充填するには、8ユニットが必要です。
  • この方法では、1本のボトルを開けるだけで十分です。

アルゴリズム

  • Kメガネを正確に記入するには、容量が最小のKメガネを使用してください
  • 必要なボトルの合計は、次のように計算できます-

    (1番目のkグラスの容量の合計)/(1本のボトルの容量)の天井値。

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int minBottles(int *capacity, int n, int k) {
   sort(capacity, capacity + n);
   int sum = 0;
   for (int i = 0; i < k; ++i) {
      sum += capacity[i];
   }
   return ceil((double)sum/100);
}
int main() {
   int capacity[] = {1, 2, 3, 2, 1};
   cout << "Min bottles required = " <<minBottles(capacity, 5, 4) << endl;
   return 0;
}

出力

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

Min bottles required = 1

  1. C++でkセットビットの数を最大化するために必要な最小フリップ。

    問題の説明 2つの数値nとkが与えられた場合、結果の数値が正確にkセットビットになるようにビットを反転することにより、指定された数値を最大化するために必要な最小の反転数を見つける必要があります。入力は、k

  2. 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