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

C++の電球スイッチャー


最初にオフになっている電球がn個あるとします。まず、すべての電球をオンにします。次に、1つおきの電球をオフにします。 3回目のラウンドでは、3つおきの電球を切り替えます(オフの場合はオン、オンの場合はオフ)。同様に、i番目のラウンドでは、すべてのi電球を切り替えます。 n回目のラウンドでは、最後のバルブのみを切り替えます。したがって、nラウンド後に電球がいくつあるかを見つける必要があります。したがって、入力が3の場合、結果は1になります。これは-

が原因です。
  • 最初は、3つの電球が[オフ、オフ、オフ]です。
  • 最初のラウンドの後、3つの電球は[オン、オン、オン]になります。
  • 2回目のラウンドの後、3つの電球は[オン、オフ、オン]になります。
  • 3回目のラウンドの後、3つの電球は[オン、オフ、オフ]になります。

これを解決するには、次の手順に従います-

  • この手順は簡単です。nの平方根を見つけて戻る必要があります。

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int bulbSwitch(int n) {
      return sqrt(n);
   }
};
main(){
   Solution ob;
   cout << (ob.bulbSwitch(3));
}

入力

3

出力

1

  1. C++の電球スイッチャーIII

    n個の電球がある部屋があるとします。これらの電球には、1からnまでの番号が付けられ、左から右に一列に並んでいます。最初は、すべての電球がオフになっています。瞬間k(0からn-1の範囲のkの場合)で、light[k]電球をオンにします。電球がオンになっていて、前のすべての電球(左側)もオンになっている場合にのみ、電球の色が青に変わります。オンになっているすべての電球が青色になっている瞬間の数を見つける必要があります。これが例です- モーメントが1、2、4であるため、出力は3になります。 これを解決するには、次の手順に従います- ret:=0、セットxを定義、n:=リスト配列のサイ

  2. Window上のc++のトップIDEは何ですか?

    大きなプロジェクトは、単なるテキストエディタでは管理が困難です。このような場合にIDEを使用すると、生産性が向上し、フラストレーションが軽減される可能性があります。 IDEにはさまざまな種類があり、ニーズに合ったものを選択する必要があります。これがWindowに最適なC/C++IDEのリストです。 Visual Studio − Microsoftが開発したIDEです。このIDEは、Windows上でC ++のプログラムを構築、開発、およびプロファイリングするためのクラス最高のツールを備えています。 Visual Studioには、多数のプラグインを備えた巨大なプラグインストアもありま