这是我编码的第一年,为了我的家庭作业,我必须找到一个递归函数来查找给定的数字是否是平方的......
如果我可以使用非递归函数,我有一些想法。但是我不知道递归。
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;
}
到
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;
}