分享一道笔试题[有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 相关文章推荐
基于JQuery的浮动DIV显示提示信息并自动隐藏
Feb 11 Javascript
js document.write()使用介绍
Feb 21 Javascript
JavaScript中匿名函数用法实例
Mar 23 Javascript
详解JavaScript中setSeconds()方法的使用
Jun 11 Javascript
Node.js 异步异常的处理与domain模块解析
May 10 Javascript
jquery dataTable 后台加载数据并分页实例代码
Jun 07 jQuery
vue-router路由懒加载和权限控制详解
Dec 13 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
May 12 Javascript
深入剖析JavaScript instanceof 运算符
Jun 14 Javascript
webpack 如何解析代码模块路径的实现
Sep 04 Javascript
微信小程序错误this.setData报错及解决过程
Sep 18 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 Vue.js
利用谷歌地图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
php include,include_once,require,require_once
2008/09/05 PHP
php 获取本机外网/公网IP的代码
2010/05/09 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
利用php生成验证码
2017/02/23 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
javascript克隆对象深度介绍
2012/11/20 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Python selenium 三种等待方式解读
2016/09/15 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
python中threading开启关闭线程操作
2020/05/02 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
中专生职业生涯规划书范文
2013/12/29 职场文书
退休感言
2014/01/28 职场文书
公路绿化方案
2014/05/12 职场文书
会计个人实习计划书
2014/08/15 职场文书
教师调动申请报告
2015/05/18 职场文书
表彰大会新闻稿
2015/07/17 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
MySQL分布式恢复进阶
2022/07/23 MySQL