首页 > 编程语言 > 详细

LeetCode 633. Sum of Square Numbers平方数之和 (C++)

时间:2019-04-22 00:19:09      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:exp   div   ==   color   hat   ble   ++   span   ret   

题目:

Given a non-negative integer c, your task is to decide whether there‘re two integers a and b such that a2 + b2 = c.

Example 1:

Input: 5
Output: True
Explanation: 1 * 1 + 2 * 2 = 5

 

Example 2:

Input: 3
Output: False

分析:

给定一个非负整数c ,你要判断是否存在两个整数a和b,使得 a^2 + b^2 = c。

我们可以给定一个a,来判断c-a*a是不是等于(sqrt(c-a*a))^2,因为一个数如果可以开方,且这个数开方后再平方的话和原来相等就是完全平方数,也就是我们所求的b。

程序:

class Solution {
public:
    bool judgeSquareSum(int c) {
        for(double a = 0; a*a <= c; ++a){
            int b = sqrt(c - a*a);
            if(b*b == (c - a*a))
                return true;
        }
        return false;
    }
};

LeetCode 633. Sum of Square Numbers平方数之和 (C++)

标签:exp   div   ==   color   hat   ble   ++   span   ret   

原文:https://www.cnblogs.com/silentteller/p/10747824.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号