|
发表于 2021-8-10 22:12:09
|
显示全部楼层
- #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;
复制代码
 |
|