Я довольно новичок в C++. Я пытаюсь написать рекурсивную двоичную функцию. Бинарный вывод должен быть 4 бита, следовательно, логика около 15 и длина двоичной строки. Он правильно преобразуется в двоичный файл, проблема, с которой я столкнулась, заканчивается рекурсивным вызовом и возвращает двоичную строку главной функции. Кажется, это просто назад через стек вызовов? Может кто-нибудь помочь мне понять, что происходит?Рекурсивное двоичное преобразование C++
Предполагая использование пространства имен std. Я знаю, что это не очень хорошая практика, но это необходимо для моего курса.
string binary(int number, string b){
if (number > 0 && number < 15){
int temp;
temp = number % 2;
b = to_string(temp) + b;
number = number/2;
binary(number, b);
}
else if (number > 15){
b = "1111";
number = number - 15;
binary(number, b);
}
else if (number == 15){
b = "11110000";
return b;
}
//should be if number < 1
else{
int s = b.size();
//check to make sure the binary string is 4 bits or more
if (s >= 4){
return b;
}
else{
for (int i = s; i < 4; i++){
b = '0' + b;
}
return b;
}
}
}
Вы должны сделать что-то с возвращаемым значением из 'binary (number, b);' но я не уверен, что. Более подробное описание того, что должен делать этот код, ожидаемые результаты для данных входов и [mcve], пожалуйста. – user4581301
Что такое базовый регистр для рекурсии? –