现在的位置: 首页 > 综合 > 正文

HDU 1249 三角形 三角形最多可以把平面分成几个区域? 递推找规律题

2018年01月19日 ⁄ 综合 ⁄ 共 695字 ⁄ 字号 评论关闭

三角形

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5053    Accepted Submission(s): 3447

Problem Description

用N个三角形最多可以把平面分成几个区域?
Input
输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据只包含一个正整数N(1<=N<=10000).
Output
对于每组测试数据,请输出题目中要求的结果.
Sample Input
2 1 2
Sample Output
2 8
/*
HDOJ 1249 三角形
一个三角形的时候,再加一个三角形,
每一条变会与第一个三角形的两条边相交,这样增加2个小三角形,即两个面。2*3 f(2)=3*2+f(1),
再加一个三角形,每一条边会与前两个三角形的四条边相交,形成四个小三角形,f(3)=3*4+f(2),
依次类推,即f(n)=3*2*(n-1)+f(n-1) 
化简:   f(2)=f(1)+6*1
        f(3)=f(2)+6*2
        f(4)=f(3)+6*3
        ....
        f(n)=f(n-1)+6*(n-1)
        
        f(n)=f(1)+6*(1+...n-1)
        f(n)=2+6*n(n-1)/2=2+3*n(n-1)
*/
#include <iostream>
using namespace std;
int main()
{
     int n,x;
     cin>>n;
     while(n--)
     {
         cin>>x;
         cout<< 3*x*(x-1)+2 <<endl;
     }
     return 0;
}

抱歉!评论已关闭.