分享一道笔试题[有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 相关文章推荐
Track Image Loading效果代码分析
Aug 13 Javascript
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
Mar 25 Javascript
jquery设置按钮停顿3秒不可用
Mar 07 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
Mar 19 Javascript
JavaScript使用focus()设置焦点失败的解决方法
Sep 03 Javascript
使用Node.js配合Nginx实现高负载网络
Jun 28 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
May 12 Javascript
老生常谈 关于JavaScript的类的继承
Jun 24 Javascript
JavaScript创建防篡改对象的方法分析
Dec 30 Javascript
JavaScript ES6常用基础知识总结
Feb 09 Javascript
关于JSON解析的实现过程解析
Oct 08 Javascript
vue学习笔记之slot插槽用法实例分析
Feb 29 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
thinkPHP模板引擎用法示例
2016/12/08 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
select标记美化--JS式插件、后期加载
2013/04/01 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
javascript获取select标签选中的值
2016/06/04 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
Python自动抢红包教程详解
2019/06/11 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
django迁移数据库错误问题解决
2019/07/29 Python
Django 自动生成api接口文档教程
2019/11/19 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
HTML5中的拖放实现详解
2017/08/23 HTML / CSS
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
Ajxa常见问题都有哪些
2014/03/26 面试题
出国留学担保书
2014/05/20 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android