GESP2024年3月认证C++三级( 第三部分编程题(2)完全平方数)
参考程序:
#include <bits/stdc++.h>
using namespace std;
const int N = 1010; // 定义数组的最大长度
int a[N]; // 定义数组,用于存储序列中的元素
int main() {
int n;
cin >> n; // 输入序列的长度
for (int i = 1; i <= n; i++) {
cin >> a[i]; // 输入序列中的每个元素
}
int ans = 0; // 初始化结果为 0
// 遍历所有可能的下标组合 <i, j>
for (int i = 1; i <= n; i++) {
for (int j = i + 1; j <= n; j++) {
int m = a[i] + a[j]; // 计算 a[i] 和 a[j] 的和
int t = sqrt(m + 1e-7); // 计算 m 的平方根,并加上一个小数避免浮点误差
if (t * t == m) { // 判断 m 是否是完全平方数
ans++; // 如果是,结果加 1
}
}
}
cout << ans << "\n"; // 输出最终结果
return 0;
}