4coder-non-source/test_data/lots_of_files/special_pythagorean_triplet...

101 lines
1.5 KiB
C++

/*
* YOUR INFO HERE!
*/
// FINAL VERSION:
#ifdef EULER_PROBLEM
// BUILDING AREA:
struct Euler_In{};
struct Euler_Result{
int product;
};
static const int PYTHAG_SUM = 1000;
Euler_Result euler_main(Euler_In in){
#if 0
int a,b,c=1;
int sa,sb,sc;
int g=1;
while (g){
++c;
}
#endif
#if 1
int a,b,c;
int sa,sb,sc;
int e;
int g=1;
c = ((PYTHAG_SUM+2)/3) + 1;
while (g){
++c;
sc = c*c;
b = c-1;
a = PYTHAG_SUM-b-c;
while (a<b){
sa = a*a;
sb = b*b;
if (sa+sb == sc){
g=0;
break;
}
--b;
a = PYTHAG_SUM-b-c;
}
}
#endif
int p=a*b*c;
Euler_Result result;
result.product = p;
return result;
}
void euler_print(Euler_Result answer, Euler_In in){
printf("%d\n", answer.product);
}
#define EULER_CHECK
bool euler_check(Euler_Result answer, Euler_In in){
bool result = 1;
int a,b,c=0;
int sa,sb,sc;
int e;
int g=1;
while (g){
++c;
sc = c*c;
a = 0;
b = PYTHAG_SUM-a-c;
while (a<b){
sa = a*a;
sb = b*b;
if (sa+sb == sc){
g=0;
break;
}
++a;
b = PYTHAG_SUM-a-c;
}
}
int p=a*b*c;
printf("answer = %d, a=%d, b=%d, c=%d\n", p, a, b, c);
result = (p == answer.product);
return result;
}
#endif