三角形划分区域

三角形划分区域

时间限制: 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;
}
原文地址:https://www.cnblogs.com/lanaiwanqi/p/10445719.html