列表

详情


NC412. 平方和

描述

给定一个正整数 c ,请问是否存在正整数 a , b 满足

数据范围:

示例1

输入:

5

输出:

true

说明:

2^2+1^2=5

示例2

输入:

25

输出:

true

说明:

4^2+3^2=25

示例3

输入:

24

输出:

false

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 3ms, 内存消耗: 396KB, 提交时间: 2022-08-06

class Solution {
  public:
    bool square(int c) {
        if (c == 1) {
            return false;
        }
        int a = sqrt(c / 2);
        for (int i = 1; i <= a; i++) {
            int b = sqrt(c - i * i);
            if (b * b + i * i == c) {
                return true;
            }
        }
        return false;
    }
};

C++ 解法, 执行用时: 3ms, 内存消耗: 396KB, 提交时间: 2022-06-06

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param c int整型 
     * @return bool布尔型
     */
    bool square(int c) {
        // write code here
        if (c == 1) {
            return false;
        }
        int maxVal = sqrt(c/2);
        for (int i=1;i<=maxVal;i++) {
            int b = sqrt(c-i*i);
            if (b*b + i*i == c) {
                return true;
            }
        }
        return false;
    }
};

C++ 解法, 执行用时: 3ms, 内存消耗: 404KB, 提交时间: 2022-07-20

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param c int整型 
     * @return bool布尔型
     */
    bool square(int c) {
        // write code here
        int nSqrt = sqrt(c);
        int nA = 1;
        int nB = 0;
        for (; nA <= nSqrt; nA++)
        {
            nB = sqrt(c - nA * nA);
            if (nB * nB + nA * nA == c && nB > 0)
            {
                return true;
            }
        }
        return false;
    }
};

C++ 解法, 执行用时: 3ms, 内存消耗: 404KB, 提交时间: 2022-07-09

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param c int整型 
     * @return bool布尔型
     */
    bool square(int c) {
        // write code herei
        int res;
        for(int i=1;i<sqrt(c);i++){
            res=c-i*i;
            int j=sqrt(res);
            if(j*j==res) return true;
        }
        return false;
    }
};

C++ 解法, 执行用时: 3ms, 内存消耗: 404KB, 提交时间: 2022-05-18

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param c int整型 
     * @return bool布尔型
     */
    bool square(int c) {
        // write code here
        for(int i = 1; i < sqrt(c);i++){
            int ye = c - i*i;
            int k = sqrt(ye);
            if(k*k == ye)
                return true;
            
        }        
        return false;
    }
};

上一题