这种数学推理题目题意极其明显,在做的时候,可以多写几组,这样找起规律来会容易些。概括起来就是:题意简单暴力,案例毫无价值。

一个三角形最多可以把一个平面分成两部分,两个三角形最多是8(2+6)部分,而三个,最多是20(2+6*(1+2))部分,于是可以猜想N个三角形分割平面最多是2+6*(1+2+...+(N-1))。得到通项2+6*(N*(N-1)/2)。可以打一下表,因为这比较靠谱,递归比较耗时间。这里求出了通项,而且不是很复杂,所以不打表应该也差不多(我还没对比过)。

Sample Input

2                              //组数T

1                             //三角形个数N

2

Sample Output

2

8

 #include<iostream>
using namespace std;
int T,N,i,ans; void slove()
{
ans=+*((N*(N-))>>);
cout<<ans<<endl;
} int main()
{
cin>>T;
while(T--)
{
cin>>N;
slove();
}
return ;
}
04-24 23:03