用C程序求100以内勾股数。

如果按一楼纳闷算,=3 j=4 k=5
i=5 j=12 k=13
i=6 j=8 k=10
i=7 j=24 k=25
i=8 j=15 k=17
i=9 j=12 k=15
i=9 j=40 k=41
i=10 j=24 k=26
i=11 j=60 k=61
i=12 j=16 k=20
i=12 j=35 k=37
i=13 j=84 k=85
i=14 j=48 k=50
i=15 j=20 k=25
i=15 j=36 k=39
i=16 j=30 k=34
i=16 j=63 k=65
i=18 j=24 k=30
i=18 j=80 k=82
i=20 j=21 k=29
i=20 j=48 k=52
i=21 j=28 k=35
i=21 j=72 k=75
i=24 j=32 k=40
i=24 j=45 k=51
i=24 j=70 k=74
i=25 j=60 k=65
怎么办?

所谓勾股数,就是对于a,b,c,存在a*a+b*b=c*c。

为去除重复,可令a<b,并对100以内的a,b遍历。如果存在满足的等式关系的c,则输出。


代码如下:

int main()
{
    int a,b,c;
    for(a = 1; a <100; a++)
        for(b = a;b<100; b++)
        {
            int d = a*a+b*b;
            if(d > 10000) break;
            for(c = b+1; c<100; c++)
            {
                int e;
                e = c*c;
                if(e == d)
                    printf("%d,%d,%d\n",a,b,c);
                if(e>=d) break;
            }
        }
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-01
#include <stdio.h>
void main()

{int a,b,c;
for(a=1;a<100;a++)
for(b=a;b<100;b++)
for(c=b;c<100;c++)
if(a*a+b*b==c*c)

printf("%d %d %d\n",a,b,c);

}本回答被提问者和网友采纳
相似回答