1.问题:求100以内的所有勾股数。
所谓勾股数,是指能够构成直角三角形三条边的三个正整数(a,b,c)。
2.思路:
采用穷举法求解时,最容易想到的一种方法是利用3个循环语句分别控制变最a、b、c的取值范围,第1层控制变量a,取值范围是1〜100。在a值确定的情况下再确定b值,即第2层控制变量b,为了避免结果有重复现象,b的取值范围是a+1〜100。a、b的值已确定,利用穷举法在b+1〜100范围内一个一个的去比较,看当前c值是否满足条件 a2 + b2 = c2,若满足,则输出当前a、b、c的值,否则继续寻找。
3.程序流程图:
4.代码实现:
#include <iostream>
using namespace std;
int main()
{
for(int i=1;i<=100;i++){
for(int j=i+1;j<=100;j++){
for(int k=j+1;k<=100;k++){
if(i*i+j*j==k*k)
cout<<i<<" "<<j<<" "<<k<<endl;
}
}
}
return 0;
}