我们的课程项目是编写最有效的程序,我们可以查找到达给定数字的所有三元组,其中(a,b,c)都不超过该数字,而不是打印出程序查找的比较数三重奏。欧几里德的公式似乎是最有效的,但不会给所有三元组。我发现,“k = 3”因子将给出所有三元组而不仅仅是原语。(赋值日期已过,我只是想找到最佳算法)
我的问题是,我的计数器是否计算所有测试,因为它告诉我我每次只测试一次。
这是我的代码。
#include <iostream>
using namespace std;
void pythFunc2(int max)
{
int counter=0;
for (int n = 1; n <= max; ++n)
{
for (int m = n + 1; m <= max && (m*m + n*n) <= max; ++m)
{
cout<<m<<"+"<<n<<"="<<endl;
counter++;
int a = ((m*m)-(n*n));
int b = (2*m*n);
int c = ((m*m)+(n*n));
cout << a << "sqrd + " << b << " sqrd = " << c <<" sqrd." <<endl;
if(((m*m)-(n*n))*3<=max && (2*m*n)*3 <=max && ((m*m)+(n*n))*3 <= max)
{
cout << a*3 << "sqrd + " << b*3 << " sqrd = " << c*3 <<" sqrd." <<endl;
}
}
}
cout<<"There were "<<counter<<" comparisons."<<endl;
return;
}