C++ 编写一个函数,用递归函数检查一个数字是否为平方
这是我第一年学习编码,在我的家庭作业中,我必须找到一个递归函数来确定给定的数字是否为平方 如果我可以使用非递归函数,我有一些想法。但是我不知道递归C++ 编写一个函数,用递归函数检查一个数字是否为平方,c++,recursion,C++,Recursion,这是我第一年学习编码,在我的家庭作业中,我必须找到一个递归函数来确定给定的数字是否为平方 如果我可以使用非递归函数,我有一些想法。但是我不知道递归 bool estCarre(int a) { bool t; t=true; for (int i = 1; i <= a; i++) { if (i*i==a){ return t=true; } if(i*i>a){
bool estCarre(int a)
{
bool t;
t=true;
for (int i = 1; i <= a; i++)
{
if (i*i==a){
return t=true;
}
if(i*i>a){
return t=false;
}
}
return t;
}
您可以转换:
bool estCarre(int a)
{
for (int i = 1; i <= a; i++)
{
if (i*i==a){
return true;
}
if(i*i>a){
return false;
}
}
return false;
}
进入
如果没有递归,你会怎么做?这可能会让你开始使用递归解决方案。发表你关于非递归的想法,也许有人可以给你一个如何递归此类函数的提示。你可以看看如何将当前代码转换为递归代码。我投票结束这个问题,因为这不是“做我的家庭作业”服务@Jarod42@Quimby布尔内特a酒店{int t;t==1;而t
bool estCarre(int a, int i = 1)
{
// Loop content:
if (i * i == a) {
return true;
}
if (i * i > a) {
return false;
}
// increment + loop condition + (recursive) loop
if (i + 1 < a) {
return estCarre(a, i + 1);
}
// outside loop
return false;
}