LeetCode蹂躏集

2018-05-10 367. Valid Perfect Sq

2018-05-10  本文已影响0人  alexsssu

题意:给你一个正数,判断这个正数是不是完全平方数。
解题思路:“完全平方数” = 1 + 3 + 5 + 7 + 9 +...
1^2 = 1;
2^2 = 1 + 3 = (1 + 3) / 2 = 2 + 2;
3^2 = 1 + 3 + 5 = (1 + 5)/2 + 3 = 3 + 3 + 3;
4^2 = 1 + 3 + 5 + 7 = (1 + 7)/2 + (3+5)/2 = 4 + 4 + 4 + 4;
...
规律就是n的平方,公式右边就有n个数相加,两端平均正好等于这个数的2倍,求和结果就是n^2;

class Solution {
public:
    bool isPerfectSquare(int num) {
        int i = 1;
        while(num > 0)
        {
            num -= i;
            i += 2;
        }
        return num == 0;
    }
};
上一篇下一篇

猜你喜欢

热点阅读