一个三角形的时候,再加一个三角形,每一条变会与第一个三角形的两条边相交,这样增加2个小三角形,即两个面。f(2)=3*2+f(1),再加一个三角形,每一条边会与前两个三角形的四条边相交,形成四个小三角形,f(3)=3*4+f(2),依次类推,f(n)=f(n-1)+6*(n-1),化简即f(n)=3*2*(n-1)+f(n-1)。
1 # include <stdio.h> 2 # include <iostream> 3 using namespace std; 4 5 void run1() 6 { 7 int n, m; 8 scanf("%d", &n); 9 while(n--) 10 { 11 scanf("%d", &m); 12 printf("%d\n", 3*m*(m-1)+2); 13 } 14 } 15 16 void run() 17 { 18 int n, m; 19 int a[10010]; 20 a[1] = 2; 21 for(int i = 2; i < 10002; i++) 22 { 23 a[i] = a[i-1]+6*(i-1); 24 } 25 scanf("%d", &n); 26 while(n--) 27 { 28 scanf("%d", &m); 29 printf("%d\n", a[m]); 30 } 31 } 32 33 int main(void) 34 { 35 run(); 36 //run1(); 37 38 return 0; 39 }