使用c++写出该代码
时间: 2024-09-22 11:07:46 浏览: 40
你可以使用C++编写如下的代码来解决这个问题。这里使用了 `<cmath>` 库来处理平方根运算,并且对输入的整数进行判断:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int T;
cin >> T; // 测试组数
for(int t = 1; t <= T; t++) {
long long s;
cin >> s; // 输入多边形面积
// 检查是否为正方形
if(sqrt(s) == floor(sqrt(s))) { // 判断是否完全平方数
cout << "0" << endl; // 输出 0(正方形)
} else {
// 检查是否为等边三角形
long long sqrt3 = sqrt(3);
if(s * 4 % sqrt3 == 0) { // 由于公式 a^2 = 4s / sqrt(3)
cout << "1" << endl; // 输出 1(等边三角形)
} else {
// 两者都不是,判断是否都不可
if((sqrt(s) * sqrt(s)) % 4 != 0 && (s * 4) % (sqrt3 * sqrt3) != 0) {
cout << "3" << endl; // 输出 3(两者均不可能)
} else {
cout << "2" << endl; // 输出 2(两者都有可能)
}
}
}
}
return 0;
}
```
这段代码首先读取测试组数,然后遍历每个测试案例,对输入的面积进行正方形和等边三角形的判断,并根据条件输出相应的数字。
阅读全文