描述
假设a、b、c均为整数,且满足a,b,c 大于1,并且小于等于100,找出所有符合条件:“a2+ b2= c2”的整数组。
输入
无。
输出
按a从小到大的顺序输出所有满足条件的整数组(若a相同,则按b从小到大的顺序输出),每行一组,每一组数据的输出样式为:
a*a + b*b = c*c
注意:
1)为避免重复输出,要求a<=b;
2)加号和等号左右各有一个空格,除此之外无多余空格。
样例输入
样例输出
解题&分析
用三重循环进行即可
可以优化的点
- 循环的时候b初始为a,c初始为b,因为a<=b,而c肯定大于b
- 当c的平方大于a的平方加上b的平方时可以直接跳出
代码&注释
#include <iostream>
using namespace std;
int main() {
for (int a = 1; a <= 100; a++) {//三重循环
for (int b = a; b <= 100; b++) {
for (int c = b; c <= 100; c++) {
if (a * a + b * b == c * c) {
cout << a << "*" << a << " + " << b << "*" << b << " = "
<< c << "*" << c << endl;
}
if (a * a + b * b < c * c)//可以直接跳出
break;
}
}
}
}