C++プログラムで繰り返しなしですべてのボールを配布する
このチュートリアルでは、誰も傷つけずにk人の生徒にn個のボールを配布する方法を学びます。
アイデアは単純です。生徒に配布する必要のあるさまざまな色のボールがn個あります。生徒に同じ色のボールを複数与える必要はありません。生徒が同じ色のボールを複数入手できる場合は、配布は行わないでください。
例を見てみましょう。
入力
n = 10 k = 5 ballsColors = "rrrgbrbgbr"
出力
Yes
生徒数(k)を超える色はありません。したがって、同じ色のボールを複数受け取る生徒はいないでしょう。
問題を解決するための手順を見てみましょう。
-
n、k、およびボールの色を初期化します。
-
マップを初期化して、ボールの色数を保存します。
-
ボールの色を繰り返して、各ボールの色の数を見つけます。
-
次に、各ボールの数を繰り返します。
-
ボールの色が生徒の数よりも多い場合、配布することはできません。
-
それ以外の場合は、ボールを配布できます。
-
-
結果を印刷します。
例
コードを見てみましょう。
#include <bits/stdc++.h> using namespace std; bool canDistributeBalls(string ballsColors, int n, int k) { map<char, int> charCount; for (int i = 0; i < n; i++) { charCount[ballsColors[i]]++; } map<char , int >::iterator itr; for(itr = charCount.begin(); itr != charCount.end(); itr++) { if (itr->second > k) { return false; } } return true; } int main() { int n = 10, k = 5; string ballsColors = "rrrgbrbgbr"; if (canDistributeBalls(ballsColors, n, k)) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; }
出力
上記のプログラムを実行するために実行すると、次の結果が得られます。
Yes
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
二次方程式のすべての根を見つけるためのC++プログラム
二次方程式はax2の形式です。 + bx+c。二次方程式の根は次の式で与えられます- 3つのケースがあります- b 2 <4 * a * c-ルートは本物ではありません。つまり、複雑です b 2 =4 * a * c-根は実数であり、両方の根は同じです。 b 2 4 * a * c-根は実数であり、両方の根は異なります 二次方程式の根を見つけるプログラムは次のとおりです。 例 #include<iostream> #include<cmath> using namespace std; int main() { in
-
セミコロンなしでC++プログラムを作成しますか?
セミコロンなしでC++プログラムを作成する方法は複数あります。これを行うことは非常に悪い習慣であり、実際のコードでは決して使用しないでください。これは、情報コンテンツとして提示されます。セミコロンなしでC++プログラムを作成する最も簡単な方法は、ifステートメントを使用することです。 C ++のほとんどすべてのステートメントは、式として扱うことができます。したがって、ステートメントを括弧の空白のペアを含むifステートメント内に配置すると、セミコロンで終了する必要がなくなります。たとえば、 例 #include<iostream> int main() {