三角形があり、その斜辺の長さが与えられます。ここでのタスクは、他の 2 つの辺も整数かどうかを調べることです。
上記の質問に対して、私は 1 つのコードを作成しましたが、それは非効率的です。同じための効率的なアルゴリズムを提案できますか?
私の仕事
#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;
}