Мне нужно сделать программу, которая принимает число и выводит из него квадратный корень. Пример - 45 -> 3√5. Я сделал программу, но она просто возвращает тот же номер, что и я. Помощь была бы весьма признательна. Вот мой код ->Программа, которая вычисляет квадратные корни числа.
#include<iostream>
using namespace std;
int squarerootfinder(int number, int divisor){
if(divisor == 1){
return 1;
}
else{
if((number/(divisor * divisor))% 1 != 0){
divisor = squarerootfinder(number, divisor - 1);
}
if((number/ (divisor * divisor)) % 1 == 0){
return divisor;
}
}
}
int main(){
int number;
cout << "Enter a number to find the square root of it \n";
cin >> number;
int divisor = number;
int squareroot;
squareroot = squarerootfinder(number, divisor);
cout << squareroot << endl;
return 0;
}
Какие попытки были предприняты для отладки проблемы? –
Ну, я читал это за последние полчаса, но я не могу найти, где ошибка. Я полагаю, что что-то не так с рекурсией функции. Но я не уверен, что должен делать. –
Если у вас есть доступ к отладчику, вы хотите пройти через выполнение программы, соблюдая поток выполнения и состояние переменных в ключевых точках этого потока. В противном случае откройте консоль или файл журнала, чтобы выполнить одно и то же. –