给定一个非负整数 c
,你要判断是否存在两个整数 a
和 b
,使得 a2 + b2 = c
。
使用双指针:
#include <iostream> #include <math.h> using namespace std; bool judge(long c) { if (c < 0) return false; long a = 0; long b = (int)sqrt(c); long sum = 0; while (a <= b) { sum = a * a + b * b; if (sum == c) { return true; } if (sum < c) { ++a; } else { --b; } } return false; } int main(void) { int c = 0; cout << "请输入一个非负整数:"; cin >> c; if (judge(c)) { cout << "存在两个整数 a 和 b,使得 a2 + b2 = c !\n"; } else { cout << "不存在两个整数 a 和 b,使得 a2 + b2 = c !\n"; } return 0; }标签:101,long,力扣,C++,judge,include From: https://www.cnblogs.com/smartlearn/p/18004497