我必须编写一个程序,它接收一个数字并输出它的平方根。例如 - 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;
}
最佳答案
这一行的两个问题都与整数类型有关:
if((number/(divisor * divisor))% 1 != 0){
记住整数运算的结果是整数,进入函数的第一组值的值是多少?假设 number
是 5。那么我们有:
5/(5*5) = 5/25 = 0
同样的事情也适用于 %1
。整数始终是整数,因此以 1 为模数总是返回 0。
关于c++ - 计算数字平方根的程序。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150427/