三角形个数


输入一根木棒的长度 n,将其分成三段,每段的长度是正整数,输出由这三小段木棒组成的不一样的三角形个数。

输入

第一行一个整数 n。(1 ≤ n ≤ 104)

输出

输出组成的不一样的三角形的个数。

样例

1
10
1
2

样例说明:

两个能组成的三角形边长分别为 2,4,4 和 3,3,4。

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;

int main() {
int ans = 0;
int n; cin >> n;
//注意枚举范围
for (int i = 1; i <= n / 3; ++i) {//枚举最小边
for (int j = i; j <= (n - i) / 2; ++j) {//枚举次小边
if ((i + j) > (n - i - j)) {//判断最长边的合法性
ans++;
//cout << i << " " << j << " " << n - i - j << endl;
}
}
}
cout << ans << endl;
return 0;
}