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

JavaScriptで電球のオンとオフを切り替える


問題

この次の状況を考慮してください-

最初はオフになっている電球がn個あります。まず、すべての電球をオンにします。次に、毎秒バルブをオフにします。 3回目のラウンドでは、3つおきの電球を切り替えます(オフの場合はオン、オンの場合はオフ)。

一般に、i番目のラウンドでは、すべてのi電球を切り替えます。そして最後に、n回目のラウンドでは、最後の電球のみを切り替えます。

nを唯一の入力として受け取り、nラウンド後にいくつの電球が点灯しているかを調べるJavaScript関数を作成する必要があります。

たとえば、関数への入力が-

の場合
const n = 4;

その場合、出力は-

になります。
const output = 2;

出力の説明:

状態配列では、0はオフを示し、1はオンを示します-

ラウンド
1 [1、1、1、1、1]
2 [1、0、1、0、1]
3 [1、0、0、0、1]
4 [1、0、0、1、1]
5 [1、0、0、1、0]

したがって、第5ラウンドの後、2つの電球だけがオンになります。

このためのコードは-

になります
const n = 5;
const findOn = (n = 1) => {
   let off = 0;
   let on = n;
   while(off <= on){
      let mid = Math.floor((off + on) / 2);
      if(mid * mid > n){
         on = mid - 1;
      }else{
         off = mid + 1;
      };
   };
   return Math.floor(on);
};
console.log(findOn(n));

出力

そして、コンソールの出力は-

になります
2

  1. JavaScriptの破壊と関数パラメータ

    以下は、JavaScriptで関数パラメーターを分解するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>  

  2. JavaScriptでのインポートとエクスポートの名前の変更

    以下は、JavaScriptでインポートとエクスポートの名前を変更するためのコードです- 注 −この例を実行するには、ローカルホストサーバーを実行する必要があります。 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <t