function singleDigit(num) {
let counter = 0
let number = [...num + ''].map(Number).reduce((x, y) => {return x * y})
if(number <= 9){
console.log(number)
}else{
console.log(number)
return singleDigit(number), counter += 1
}
}
singleDigit(39)
上記のコードは整数を受け取り、それをそれ自身の桁で乗算することにより1桁に減らします。
例は39です。
3 x 9 = 27.
2 x 7 = 14.
1 x 4 = 4.
コンソールはログに記録します:
27
14
4
再帰関数が3回呼び出されたことを追跡するにはどうすればよいですか?
カウンターを追加しようとしましたが、更新できません。どんな助けにも感謝します
-57
は実際にはa -50
と-7
..です。このように見た場合、-5
x -7
を減らして正の数値を生成し35
ます。それともあなたはそれが唯一のマイナスの符号と見たいと思ってやる5
といない7
にもカントー、7
だけでなく、実際にはマイナスです。2)ゼロを含む数値をどのように扱うつもりですか?これは自動的に削減をゼロにするからです。したがって、渡す数値が大きいほど、ゼロになる可能性が高くなります。もう1つのオプションは、ゼロをスキップすることです
.map(Number)
*
演算子はとにかく数値を強制するため、冗長です。;-)