#include <stdio.h>
// 1、a^2 + b^2 = C^2
// 2、c = 1000 - a - b
// 极坐标化
// rcosx + rsinx = r^2
// r = 1000 / (sinx + cosx + 1) -> c(414 ~ 500)
// (a < b < c)
static count = 0;
void method1(void)
{
int a,b,c;
for(c = 414; c <= 500; c++)
{//a + b = 1000 - c
for(a = 1; a < b; a++)
{
count += 1;
b = 1000 - c - a;
if (a*a + b*b == c*c){
printf("method1 result:\n");
printf("a = %d, b = %d, c = %d\n", a,b,c);
printf("count = %d\n", count);
return;
}
}
}
printf("Can't' find~\n'");
}
void method2(void)
{
int a,b,c;
for(c = 1;c<1000;c++){
for(a = 1;a<b;a++){
count += 1;
b = 1000 - c - a;
if (a*a + b*b == c*c){
printf("method1 result:\n");
printf("a = %d, b = %d, c = %d\n", a,b,c);
printf("count = %d\n", count);
return;
}
}
}
printf("Can't' find~\n'");
}
int main(void)
{
method1();
method2();
return 0;
}
//method1 - count = 3393, a = 200, b = 375, c = 425;
//method2 - count = 167004, a = 200, b = 375, c = 425;
 |