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 }
yy_room