【待完善】UVA - 11401:Triangle Counting

Triangle Counting

来源:UVA

标签:

参考资料:

相似题目:

题目

You are given n rods of length 1, 2, . . . , n. You have to pick any 3 of them and build a triangle. How many distinct triangles can you make? Note that, two triangles will be considered different if they have at least 1 pair of arms with different length.

输入

The input for each case will have only a single positive integer n (3 ≤ n ≤ 1000000). The end of input will be indicated by a case with n < 3. This case should not be processed.

输出

For each test case, print the number of distinct triangles you can make.

输入样例

5
8
0

输出样例

3
22

参考代码

#include
long long f[1000010];
int main(){
    f[3]=0;
    for(long long x=4;x<=1000000;x++){
        f[x]=f[x-1]+((x-1)*(x-2)/2-(x-1)/2)/2;
    }
    int n;
    while(~scanf("%d",&n)){
        if(n<3) break;
        printf("%lld\n",f[n]);
    }
    return 0;
}

你可能感兴趣的:(【记录】算法题解)