Sum of Square Numbers问题描述

来源:互联网 发布:linux fork多个子进程 编辑:程序博客网 时间:2024/05/22 13:17

问题描述:

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

示例:

Input: 5Output: TrueExplanation: 1 * 1 + 2 * 2 = 5
Input: 3Output: False
问题分析:

分析可知,a和b的取值范围在[0,√c]之间,于是乎我们可以遍历寻找a和b。


过程详见代码:

class Solution {public:    bool judgeSquareSum(int c) {        int high = sqrt(c);int low = 0;while (low < high){int sum = low * low + high * high;if (sum == c) return true;else if (sum < c) low++;else high--;}if (low * low + high * high == c) return true;return false;    }};


原创粉丝点击