尝试求是否是3的幂
bool IsPowerOfThree(int n)
{
if (n > 3) { IsPowerOfThree(n / 3); }
if (n == 3) { return true; }
else { return false; }
}
输入27 输出false 断点显示曾经得到过true但是不知道为啥最后并没有保留下来
bool IsPowerOfThree(int n)
{
if (n > 3) { return IsPowerOfThree(n / 3); }
else if (n == 3)
{ return true; }
else { return false; }
}
if else 要写全, 要写 return, 请试试看
bool IsPowerOfThree(ref int n)
{
if (n > 3)
{
n = n / 3;
IsPowerOfThree( ref n);
}
if (n == 3) { return true; }
else { return false; }
}
你这个递归有问题,你这个涉及到了栈的概念,但是呢n这个参数在最低层的栈里面,一直都是27,所以无论你怎么判断,结果都是false
bool IsPowerOfThree(int n)
{
bool IsOK = false;
if (n > 3)
{
IsOK = IsPowerOfThree( n / 3);
}
return IsOK;
}
2种方法都可以实现,建议使用这种方法