n个三角形最多可以构成多少个区域
2015-10-15 15:59
183 查看
题目:
[align=left]Problem Description[/align]
用N个三角形最多可以把平面分成几个区域?
[align=left]Input[/align]
输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据只包含一个正整数N(1<=N<=10000).
[align=left]Output[/align]
对于每组测试数据,请输出题目中要求的结果.
[align=left]Sample Input[/align]
[align=left]Sample Output[/align]
分析:
有一种很简单的理解方法,就是画一个圆,用两个三角形举例来说,3表示3条边,1表示第二个三角形的每一条边都会与第一个三角形的其中两条边相交后得到一个三角形,2表示2个三角形,+2则表示外面的区域和同有的2个三角形共有的一个区域。同样第三个三角形会与第一第二个三角形都有两条边相交。可得:3*2*3+2
由些可得,n个三角形:3*(n-1)*n+2
此种代码如下:
还有可以直接用欧拉公式,不论什么形状的凸多边形,其顶点数V、棱数E、面数F之间总有关系V+F-E=2,则F = E - V + 2;
边:E[i]=E[i-1]+(4*i-3)*3;
点:V[i]=V[i-1]+(2*i-1)*3;
此种代码如下:
[align=left]Problem Description[/align]
用N个三角形最多可以把平面分成几个区域?
[align=left]Input[/align]
输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据只包含一个正整数N(1<=N<=10000).
[align=left]Output[/align]
对于每组测试数据,请输出题目中要求的结果.
[align=left]Sample Input[/align]
2 1 2
[align=left]Sample Output[/align]
2 8
分析:
有一种很简单的理解方法,就是画一个圆,用两个三角形举例来说,3表示3条边,1表示第二个三角形的每一条边都会与第一个三角形的其中两条边相交后得到一个三角形,2表示2个三角形,+2则表示外面的区域和同有的2个三角形共有的一个区域。同样第三个三角形会与第一第二个三角形都有两条边相交。可得:3*2*3+2
由些可得,n个三角形:3*(n-1)*n+2
此种代码如下:
#include <stdio.h> int main(){ int t,n; scanf("%d",&t); while(t--){ scanf("%d",&n); printf("%d\n",3 * (n-1) * n + 2); //3表示有三角形有三条边,n表示n个三角形,(n-1)表示吗,每个三角形都会与其他(n-1)个三角形的其他两条边构成一个三角形,n表示 //有n个三角形,再加二表示内部重合部分和外部 } return 0; }
还有可以直接用欧拉公式,不论什么形状的凸多边形,其顶点数V、棱数E、面数F之间总有关系V+F-E=2,则F = E - V + 2;
边:E[i]=E[i-1]+(4*i-3)*3;
点:V[i]=V[i-1]+(2*i-1)*3;
此种代码如下:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define max 10001 int V[max],E[max]; void solve() { int i; memset(V,0,sizeof(V)); memset(E,0,sizeof(E)); E[1]=V[1]=3; for(i=2;i<max;i++) E[i]=E[i-1]+(4*i-3)*3; for(i=2;i<max;i++) V[i]=V[i-1]+(2*i-1)*3; } int main() { int T,n; solve(); scanf("%d",&T); while(T--) { scanf("%d",&n); printf("%d\n",E -V +2); } return 0; }
相关文章推荐
- mysql测试spring事务是否生效
- day2练习题
- Laravel 5 服务的注册和使用
- 防止 IE 自动跳兼容模式
- 很常用的第三方或者开源库
- 技术专题tableView
- Vertex&Frag
- IIS7启用32位应用程序
- JavaScript窗口及输入输出
- Java读取properties配置文件时,中文乱码解决方法 .
- 线性规划问题的matlab求解
- 远程安装软件控制台
- jq中选择器的选择问题
- JAVA获取CLASSPATH路径
- 【C语言深入】[002] valotile 关键字:
- ocp-430
- 我是怎么招聘程序员的
- ocp-429
- 改写不走索引的SQL
- 其实你不知道MultiDex到底有多坑