Прохожу на FreeCodeCamp рекурсию
Шаг 71 -
https://www.freecodecamp.org/learn/j...verter/step-71
Вот интересующая функция
const decimalToBinary = (input) => {
if (input === 0) {
return "";
} else {
return decimalToBinary(Math.floor(input / 2)) + (input % 2);
}
};
Если мы напишем в input 10, то как я понял:
10/2 = 5
5/2 = 2
2/2 = 1
1/2 = 0
input === 0 и мы возвращаем пустую строку
А далее мы начинаем объединять вызовы и тут я не понимаю, вот что мне ответила нейросеть:
decimalToBinary(1) ВОЗВРАТ decimalToBinary(0) + (1 % 2) = "" + 1 = "1"
decimalToBinary(2) ВОЗВРАТ decimalToBinary(1) + (2 % 2) = "1" + 0 = "10"
decimalToBinary(5) ВОЗВРАТ decimalToBinary(2) + (5 % 2) = "10" + 1 = "101"
decimalToBinary(10) ВОЗВРАТ decimalToBinary(5) + (10 % 2) = "101" + 0 = "1010"
Пока не понимаю как тут логика строится, может помочь кто нибудь