有一个三角形,它的斜边长度是给我们的。现在我们的任务是找出其他两侧是否也是整数。
对于上述问题,我构建了一个代码,但效率低下,您能否建议任何有效的算法。
我的工作
#include<stdio.h>
#include<cmath>
using namespace std;
int isInt(double x) {
if( (x - (int)x) == 0 ) return 1;
return 0;
}
main() {
int S;
int flag = 0;
scanf("%d", &S);
flag = 0;
for(int i = 1; i < S; i++) {
if( isInt(sqrt(S*S - i*i)) ) {
printf("EXIST\n");
flag = 1;
break;
}
}
if(!flag) printf("NOT EXIST\n");
return 0;
}