hdu 1249 三角形

三角形

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

Problem Description
用N个三角形最多可以把平面分成几个区域?
 
Input
输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据只包含一个正整数N(1<=N<=10000).
 
Output
对于每组测试数据,请输出题目中要求的结果.
 
Sample Input
2 1 2
 
Sample Output
2 8
一个三角形 2
两个三角形 会在一的前提下增加 3 * 2
3 ----  增加 3 * 4
4 ---- 增加  3 * 6
所以 f[n] = f[n-1] + 3* (n-1)*2
 1 #include <stdio.h>
 2 #include <string.h>
 3 #define N 10003
 4 
 5 long long a[N];
 6 /*
 7 void init()
 8 {
 9     memset(a,0,sizeof(a));
10     int i;
11     a[1]= 2;
12     int k = 2;
13     for(i = 2; i < N; i++)
14       {
15           a[i] = a[i-1] + 3*k;
16           k = k+2;
17       }
18 }*/
19 
20 void init()
21 {
22     int i;
23     memset(a,0,sizeof(a));
24     a[1] = 2;
25     for(i = 2; i < N; i++)
26       a[i] = a[i-1] + 3*(i-1)*2;
27 }
28 int main()
29 {
30     init();
31     int T;
32     scanf("%d",&T);
33     while(T--)
34     {
35         int n;
36         scanf("%d",&n);
37         printf("%lld\n",a[n]);
38     }
39     return 0;
40 }
原文地址:https://www.cnblogs.com/yyroom/p/3037477.html