テストエンコーディング|(JavaScript)プログラマー:ハッシュ数
に質問
正の整数xを下のスケール数にするには、xをxの桁数の和で除算する必要があります.例えば、18の桁数の和は1+8=9であり、18は9で除算されるので、18は下付き文字数となる.自然数xを入力し、xがハザード数の関数かどうかをチェックし、解を完了します.
制限
🎹📢I/O例
ほどく
function solution(x) {
let answer = true;
let number = x;
let sum = 0;
// 10으로 나눈 나머지 값을 더해주고 기존의 값을 10으로 나누어준다.
while(number > 0){
sum += number % 10;
number /= 10;
// 정수형으로 변환하지 않으면 float가 되어버린다.
number = parseInt(number);
}
answer = (x % sum == 0);
return answer;
}
// 또 다른 방법
function solution(x) {
let answer = true;
let sum = 0;
x.toString().split('').map(value => sum += Math.floor(value));
answer = (x % sum == 0);
return answer;
}
JAvascriptはintとfloatを明確に区切っていないので、それらの動的変換をチェックし、intタイプに変換します.これもC++で解けるようです.提出してよく考えてみると、ParseIntは四捨五入で、もしあなたが望む結果が正しいなら、Math.床関数はもっと適切だと思います.Javascriptでは、数値をStringに変換してString関連関数を使用する強力な機能の1つと考えられているので、split関数を使用して簡単にビット数を分割できます.ただし文字列として認識されるため、変換を再開する必要がある.だからスピードの面では少し損をするかもしれませんが、細かいのはもっと速い?!ああ...GOOD!!
プログラマーは、問題全体を改編したのか、他の人の答えは改編前だと指導した.
参考資料とサイト(ありがとうございます)
Reference
この問題について(テストエンコーディング|(JavaScript)プログラマー:ハッシュ数), 我々は、より多くの情報をここで見つけました https://velog.io/@goblin820/코딩테스트-JavaScript-프로그래머스-하샤드-수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol