减少 运行 时间 C 或 C++
Reducing Run Time C or C++
伙计们,请给我一些提示,告诉我如何减少我的 C 或 C++ 程序的编译时间...
一些基本的简单技巧会有所帮助。
我正在通过网站解决问题(https://www.codechef.com/problems/TRISQ)
问题是:-
直角等腰三角形最多可以容纳多少个 2x2 正方形,底边 B.One 正方形的边必须平行于等腰三角形的底边 triangle.Base是三角形的最短边。
第一行包含 T,测试用例的数量。
以下T行每行包含1个整数B。
正好输出 T 行,每行包含所需的答案。
示例输入
11
1
2
3
4
5
6
7
8
9
10
11
示例输出
0
0
0
1
1
3
3
6
6
10
10
我的代码
#include<iostream>
using namespace std;
int main()
{
int T,N,a,i,j;
cin>>T;
while(T--)
{
a=0;
cin>>N;
N=N/2;
N--;
j=N;
for(i=0;i<j;i++)
{
a+=N;
N--;
}
cout<<a<<endl;
}
}
那么你们认为如何编辑此代码(例如)以获得更好的编译时间?
第一个个人资料。
其次,调高编译器的优化级别。
第三,用乘法/代数替换 for 循环。例如,行
a+=N
是乘法(重复加法)的基础,循环可以换成:
a += j * N; N -= j;
替换循环将加速您的程序(如果您的编译器尚未替换循环)。
打印函数的汇编语言将显示编译器如何应用优化。
编辑 1:
更少的代码意味着更快的 build 时间。我不知道建筑物的时差是否可以测量。
伙计们,请给我一些提示,告诉我如何减少我的 C 或 C++ 程序的编译时间... 一些基本的简单技巧会有所帮助。 我正在通过网站解决问题(https://www.codechef.com/problems/TRISQ) 问题是:-
直角等腰三角形最多可以容纳多少个 2x2 正方形,底边 B.One 正方形的边必须平行于等腰三角形的底边 triangle.Base是三角形的最短边。 第一行包含 T,测试用例的数量。
以下T行每行包含1个整数B。
正好输出 T 行,每行包含所需的答案。
示例输入
11
1
2
3
4
5
6
7
8
9
10
11
示例输出
0
0
0
1
1
3
3
6
6
10
10
我的代码
#include<iostream>
using namespace std;
int main()
{
int T,N,a,i,j;
cin>>T;
while(T--)
{
a=0;
cin>>N;
N=N/2;
N--;
j=N;
for(i=0;i<j;i++)
{
a+=N;
N--;
}
cout<<a<<endl;
}
}
那么你们认为如何编辑此代码(例如)以获得更好的编译时间?
第一个个人资料。
其次,调高编译器的优化级别。
第三,用乘法/代数替换 for 循环。例如,行
a+=N
是乘法(重复加法)的基础,循环可以换成:
a += j * N; N -= j;
替换循环将加速您的程序(如果您的编译器尚未替换循环)。
打印函数的汇编语言将显示编译器如何应用优化。
编辑 1: 更少的代码意味着更快的 build 时间。我不知道建筑物的时差是否可以测量。