プログラマ-ハザード数


📝 問題の説明



🔑 私の答え


まず問題を見て、それから3段階に分けて処理過程を考えます.
  • で与えられた正の整数xをArrayとするべきである.これにより,インデックスを用いて各ビット数の和を求めることができる.
  • for文も考えられますが、reduceの方が書きやすいので、reduceを使って結果値を変数に入れます.
  • の結果値をresultと呼ぶ場合、結果%x==0がtrueの場合false!
  • 1.正の整数xをArrayにする


    xが150に等しい場合varx=150;データ型は*number**です.
    **split()**データ型を*string**に変換する必要があるので、StringかtoString()を使えばいいと思います!
    fuction solution (x) {
    var array = x.toString().split("")
    //여기서 구분자를 지정해주지 않고 "" 를 넣어주어야 ["1","5","0"] 로 쪼개져서 나온다! 
    } 

    2.reduce()の使用


    Array.prototype.reduce( )



    reduceがどのように働いているのか、mdnにも詳しく説明されていて、教室でも聞いたことがありますが、私にはまだ難しいです...😭 reduce()には2つのパラメータが含まれており、1つのパラメータにはコールバックの戻り値があり、もう1つのパラメータには処理する現在の要素の値があり、使用にとって意味が大きいため、コードが記述されています.
    fuction solution (x) {
    	var array = x.toString().split("")
    	//여기서 구분자를 지정해주지 않고 "" 를 넣어주어야 ["1","5","0"] 로 쪼개져서 나온다! 
    	var reducer = (accuulator,currentValue) => accumulator + currentValue;
     	var result = array.reduce(reducer);
      	// 한번에 작성할 수도 있다.
      	// var result = array.reduce((accuulator,currentValue) => accumulator + currentValue)
    } 
    ただし、ここでは分割が完了し、reduceも完了したが、データ型はstringのままであるため、[1]、[5]、[0]、[150]に出力されることがわかる.結果は6!
    reduceを使用して、数値を使用してパラメータのタイプを変更して、結果値を出力することができます.
    fuction solution (x) {
    	var array = x.toString().split("")
    	//여기서 구분자를 지정해주지 않고 "" 를 넣어주어야 ["1","5","0"] 로 쪼개져서 나온다! 
    	var reducer = (accuulator,currentValue) => Number(accumulator) + Number(currentValue);
     	var result = array.reduce(reducer);
      	// 한번에 작성할 수도 있다.
      	// var result = array.reduce((accuulator,currentValue) => accumulator + currentValue)
    } 
    結果値を返すと6!!👏👏👏

    3.結果%x==0がtrueの場合、そうでない場合false!


    if文を使用して符号化する過程で...私も今、他の質問で使われている3つの演算子を書いてみましょう.私は3つの演算子であなたに書いたと思います.これは作りやすい!

    完了した私のコード



    このように提出した後、コードをもっときれいに変えてもらえないかと思います.
    他の人の解答を見て、数字ではなく、ParseIntを使ってタイプに変換したことに気づいたので、もう一度書き直して、下記のように!

    きれいに見えますよね?ぐるぐる回る
    ハザードスキル終了~!👌