如何减少这个双重for循环的时间?
#include<iostream>
#include<ctime>
using namespace std;
int find_intR(int N) {
int n = 0;
for (int i = 1; i <= N ; i++)
for (int j = 1; j <= N ; j++) {
int p = (i*j) / (i + j);
if (i*j == p*(i + j))
n += 1;
}
return n;
}
int main()
{
int a[10000],i=0;
while (cin >> a[i]) {
i++;
}
int begin = clock();
for (int j = 0; j < i; j++)
cout<<find_intR(a[j])<<endl;
int end = clock();
cout << end - begin << endl;
system("pause");
return 0;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
感觉性能耗费在这
...
int p = (i*j) / (i + j);
if (ij == p(i + j))
n += 1;
...
说好的更新。。。
我觉得我没有能力继续优化了。
这个思路的话,再怎么提高也不会提高太多.