你们可以请教我如何减少我的c或c ++程序的编译时间... 一些基本的简单技术将有所帮助。 我是通过网站解决问题的(https://www.codechef.com/problems/TRISQ) 问题是: -
大小为2x2的最大平方数是多少,可以放在基座B的直角等腰三角形中。方形的一边必须与等腰三角形的底边平行。基底是最短的一边。三角形。 第一行包含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;
}
}
那么你们怎么认为这个代码(例如)可以编辑以获得更好的编译时间?
答案 0 :(得分:1)
第一个档案。
其次,在编译器上调高优化级别。
第三,用乘法/代数替换你的for循环。例如,行
a+=N
是乘法(重复加法)的基础,循环可以用以下代替:
a += j * N; N -= j;
更换循环将加快程序的速度(如果你的编译器还没有替换循环)。
打印函数的汇编语言将显示编译器如何应用优化。
编辑1: 更少的代码意味着更快的构建时间。我不知道建筑物的时差是否可以测量。