欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]_javascript技巧

程序员文章站 2022-04-29 09:57:51
...
复制代码 代码如下:


题:

有n个直线最多可以把一个平面分成多少个部分


线条数:

内交点:

分割数:





说一下规律:

①最多分成的部分:线条数+内交点数+1

②内交点数=(线条数-1)的内交点数+(线条数-1),新添加的线条可以会与除他之外的线条有交点

③用递归求出内交点数,然后代入①计算

上面是正常的数学思维,下面说说我用的行测知识,就是我代码的东东

我列出了1~5条直线一些可用的参数:

直线数  内交点  外交点  部分数

1     0     2     2

2     1     4     4

3     3     6      7

4     6     8     11

5     10    10     16

发现,外交点是没有意义的,反正都是直线数的2倍

而部分数=直线数+内交点数+1

相邻直线个数内交点个数组成一个等差数列,这个等差数列公差为1, 1-0=1,3-1=2,6-3=3,10-6=4, 横向看1+0=1,2+1=3,3+3=6...但是这样还是用到了递归要求出上一个对应的内交点个数,于是纵向看规律,2*1=2 3*2=6 4*3=12...正好是内交点个数的2倍

相关标签: n个直线 平面