减少运行时间C或C ++

时间:2015-07-16 15:54:55

标签: c++ compilation

你们可以请教我如何减少我的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;
        }
}

那么你们怎么认为这个代码(例如)可以编辑以获得更好的编译时间?

1 个答案:

答案 0 :(得分:1)

第一个档案。

其次,在编译器上调高优化级别。

第三,用乘法/代数替换你的for循环。例如,行
 a+=N  是乘法(重复加法)的基础,循环可以用以下代替:
 a += j * N; N -= j;

更换循环将加快程序的速度(如果你的编译器还没有替换循环)。

打印函数的汇编语言将显示编译器如何应用优化。

编辑1: 更少的代码意味着更快的构建时间。我不知道建筑物的时差是否可以测量。