33,323
社区成员




#include <stdio.h>
int main()
{
const int Max=100;
for( int i=2; i<Max; ++i )
for( int j=1; j<i && i*i+j*j<Max*Max; ++j )
printf("%d^2 + %d^2 == %d^2\n", 2*i*j, i*i-j*j, i*i+j*j);
return 0;
}
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int link[10001] ,i,a,b,c,tempt,aMAX;
for(i=0;i <=10000;i++)
link[i]=i*i; //存储边的平方
for(c=3;c<=10000;c++) //以最大边(斜边)来考虑
{
aMAX=link[c]/2; //a*a最大值 (假定a<b,则a*a<C*C/2)
a=1;
while(link[a] <aMAX)
{
tempt=link[c]-link[a]; //如果存在 link[c]-link[a]==b*b 就组成直角三角形 a,b,c
b=(int)sqrt(tempt);
if(link[b]==tempt) //或者改成if(link[b]==tempt) 效果更好
cout <<a <<" "<<b <<" " <<c<<endl;
a++;
}
}
return 0;
}
#include <iostream>