四平方定理:任何一个正整数都可以表示成不超过四个整数的平方之和。

推论:满足四数平方和定理的数,必定满足

int numSquares(int n)
{
    if (n % 8 == 7)
        return 4;
    for (int i = n; i % 4 == 0;)
    {
        i /= 4;
        if (i % 8 == 7)
            return 4;
    }
    if (sqr((int)sqrt(n)) == n)
        return 1;
    for (int i = 1; sqr(i) <= n; i++)
    {
        if (sqr((int)sqrt(n - sqr(i))) == n - sqr(i))
            return 2;
    }
    return 3;
}
此文章已被阅读次数:正在加载...更新于