高手帮我编下这个C语言的题哈 谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/16 14:32:05
找出1000以内满足勾股定理的所有的数。

题就是这样 高手们帮帮忙哈

楼上的编的我认为都不是最优化的算法。我认为最后的c可以根据ab算出来,不用再穷举了。这样可以大大减少程序的时间复杂度。
我编的完整程序如下。
C++版:
#include <fstream>
#include <iostream>
using namespace std;
#include <cmath>
ofstream fout ("勾股定理.txt");
int main (void)
{

fout<<"下面是1000以内满足勾股定理的所有的数:"<<endl;
cout<<"下面是1000以内满足勾股定理的所有的数:"<<endl;
int a,b,c;
for (a=1;a<=1000;a++)
for (b=a;b<=1000;b++)
{
c=(int)sqrt(a*a+b*b);
if (sqrt(a*a+b*b)==c&&c<=1000)
{
fout<<a<<' '<<b<<' '<<c<<endl;
cout<<a<<' '<<b<<' '<<c<<endl;
}
}
fout<<"end"<<endl;
cout<<"end"<<endl;
return 0;
}
这个程序会将结果输出到屏幕和文件"