1254: 三角形
这类题目一般来说是找规律,找出递推式,找递推式有以下两种方
①直接找规律(这个要数感好),对于这一道题保险一点将第四幅图画出来,得38个(这个要手不残)——不过这个来得简单粗暴,有经验的话其实答案出来得挺快
②推:第n个三角形,它的每条边最多与前n-1个三角形的每2条边相交,因此第n个三角形与前n-1个三角形共形成2*(n-1)3个交点。这些交点把第n个三角形分割成6(n-1)个线段。其中每条线段都把原来的区域一分为二,即新增6*(n-1)个区域。
都可以得出递推式:a[i]=a[i-1]+a[i-1]*6;
题目描述
用N个三角形最多可以把平面分成几个区域?
输入
输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据只包含一个正整数N(1<=N<=10000).
输出
对于每组测试数据,请输出题目中要求的结果.
样例输入 Copy
1
2
样例输出 Copy
2
8
#include<stdio.h>
int f(int x){
if(x==1)
return 2;
else
return f(x-1)+(x-1)*6;
}
int main(){
int t,n,i;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
printf("%d\n",f(n));
}
return 0;
}