Algorithm 是不是完美的正方形?
这是一个代码,用来检查一个数字是否是完美的正方形。它为什么有效Algorithm 是不是完美的正方形?,algorithm,perfect-square,Algorithm,Perfect Square,这是一个代码,用来检查一个数字是否是完美的正方形。它为什么有效 static bool IsSquare(int n) { int i = 1; for (; ; ) { if (n < 0) return false; if (n == 0) return true; n -= i; i += 2; } } static bool IsSqua
static bool IsSquare(int n)
{
int i = 1;
for (; ; )
{
if (n < 0)
return false;
if (n == 0)
return true;
n -= i;
i += 2;
}
}
static bool IsSquare(int n)
{
int i=1;
对于(;;)
{
if(n<0)
返回false;
如果(n==0)
返回true;
n-=i;
i+=2;
}
}
因为所有的完美平方都是连续奇数的和:
- 1=1
- 4=1+3
- 9=1+3+5
- 16=1+3+5+7
n
中减去连续的奇数,然后查看它是降到零还是变为负数
你可以用
{1,2,3,4,…}
的边画正方形来非正式地证明这一点,并观察到从正方形k
构造正方形k+1
需要添加2k+1
单位正方形。谢谢:)我从来都不知道这一点。@dasblinkenlight-我刚才看到了。。成功了@dasblinkenlight-是的,我们可以通过画正方形很容易地证明这一点。。这里有一段视频解释@user1386320:当然,你可以在学校学到这一点。每个国家的学校课程都不同,教师的适应也不同,所以这可能会带来厄运。