这是我从事编码的第一年,对于我的家庭作业,我必须找到一个递归函数,该函数确定给定的数字是否为平方...
如果可以使用非递归函数,我有一些想法。但是我不知道递归。
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;
}
答案 0 :(得分:0)
您可能会改变:
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;
}
进入
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;
}