三角形划分区域
时间限制: 1 Sec 内存限制: 32 MB
题目描述
用N个三角形最多可以把平面分成几个区域?
输入
输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量。然后是T组测试数据,每组测试数据只包含一个正整数N(1<=N<=10000)。
输出
对于每组测试数据,请输出题目中要求的结果。
样例输入
2
1
2
样例输出
2
8
题意概括
N个三角形最多可以吧平面分成几个区域;
解题思路
我后来重新推到的一个公式,根据题目中的样例可以,然后可以推到出之后的三角形,第i个三角形最多可以把平面分为a[i]=a[i-1]+(i-1)*6;
推到的大致就是,之后的每增加一个三角形,所增加的面积就是讲之前所有的三角形的角的个数的二倍;
代码
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<math.h>
#include<algorithm>
#include<queue>
#define inf 0x3f3f3f3f
using namespace std;
long long a[11000];
int main ()
{
a[1]=2;
a[2]=8;
for(int i=3;i<=10000;i++){
a[i]=a[i-1]+(i-1)*3*2;
}
int t,n;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
printf("%lld
",a[n]);
}
return 0;
}