判断一个数是否为平方数

最近学到了一个判断某个数是否为平方数的比较骚的做法:

任意数的平方都能用一个首项为1,公差为2的等差数列表示,所以要判断一个数是不是平方数可以用这个数依次减1,减3,减5…,如果最后能够减到0,那么这个数就是平方数,否则就不是

代码实现:

bool isSquare(int x) {
    for(int i = 1;x > 0;i += 2) x -= i;
    return x == 0;
}
posted @ 2023-01-01 22:52  junlin623  阅读(368)  评论(0编辑  收藏  举报