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


Posted in Javascript onOctober 12, 2012
<html> 
题:<br /> 
有n个直线最多可以把一个平面分成多少个部分<br /><br /> 
线条数:<input type="text" id="line"/><br /> 
内交点:<label id="innerPoint"></label><br /> 
分割数:<label id="part" style="background:yellow;"></label><br /> 
<input type="button" onclick="calculate()" value="计算"/> 
</html> 
<script type="text/javascript"> 
function calculate(line) 
{ 
var line = document.getElementById('line').value; 
if(line == "") 
{ 
line = 0; 
document.getElementById('line').value = line; 
} 
var line = parseInt(line); 
var innerPoint = line * (line -1) / 2; 
var part = (Math.pow(line,2) + line)/2 + 1;//line + innerPoint + 1等于(线条数的平方+线条数)/2 + 1 document.getElementById('innerPoint').innerText = innerPoint; 
document.getElementById('part').innerText = part; 
} 
</script>

说一下规律:

①最多分成的部分:线条数+内交点数+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倍 

Javascript 相关文章推荐
JavaScript Array扩展实现代码
Oct 14 Javascript
jquery清空表单数据示例分享
Feb 13 Javascript
一道关于JavaScript变量作用域的面试题
Mar 08 Javascript
基于javascript实现九九乘法表
Mar 27 Javascript
微信小程序 支付简单实例及注意事项
Jan 06 Javascript
JSON键值对序列化和反序列化解析
Jan 24 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
Apr 03 jQuery
angular4 JavaScript内存溢出问题
Mar 06 Javascript
JavaScript 隐性类型转换步骤浅析
Mar 15 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
Aug 22 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
Sep 16 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
Dec 26 Javascript
利用谷歌地图API获取点与点的距离的js代码
Oct 11 #Javascript
关于JS控制代码暂停的实现方法分享
Oct 11 #Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
Oct 11 #Javascript
js函数的延迟加载实现代码
Oct 11 #Javascript
javascript中方便增删改cookie的一个类
Oct 11 #Javascript
js事件(Event)知识整理
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
Oct 11 #Javascript
You might like
调频问题解答
2021/03/01 无线电
拼音码表的生成
2006/10/09 PHP
PHP 学习路线与时间表
2010/02/21 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
PHP引用的调用方法分析
2016/04/25 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
IE浏览器下PNG相关功能
2015/07/05 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
Python中模块与包有相同名字的处理方法
2017/05/05 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
大学生应聘自荐信
2013/10/11 职场文书
心得体会开头
2014/01/01 职场文书
同事打架检讨书
2014/02/04 职场文书
有创意的广告词
2014/03/18 职场文书
create-react-app开发常用配置教程
2022/06/25 Javascript
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技