分享一道筆試題[有n個(gè)直線最多可以把一個(gè)平面分成多少個(gè)部分]
<html>
題:<br />
有n個(gè)直線最多可以把一個(gè)平面分成多少個(gè)部分<br /><br />
線條數(shù):<input type="text" id="line"/><br />
內(nèi)交點(diǎn):<label id="innerPoint"></label><br />
分割數(shù):<label id="part" style="background:yellow;"></label><br />
<input type="button" onclick="calculate()" value="計(jì)算"/>
</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等于(線條數(shù)的平方+線條數(shù))/2 + 1
document.getElementById('innerPoint').innerText = innerPoint;
document.getElementById('part').innerText = part;
}
</script>
說一下規(guī)律:
①最多分成的部分:線條數(shù)+內(nèi)交點(diǎn)數(shù)+1
②內(nèi)交點(diǎn)數(shù)=(線條數(shù)-1)的內(nèi)交點(diǎn)數(shù)+(線條數(shù)-1),新添加的線條可以會與除他之外的線條有交點(diǎn)
③用遞歸求出內(nèi)交點(diǎn)數(shù),然后代入①計(jì)算
上面是正常的數(shù)學(xué)思維,下面說說我用的行測知識,就是我代碼的東東
我列出了1~5條直線一些可用的參數(shù):
直線數(shù) 內(nèi)交點(diǎn) 外交點(diǎn) 部分?jǐn)?shù)
1 0 2 2
2 1 4 4
3 3 6 7
4 6 8 11
5 10 10 16
發(fā)現(xiàn),外交點(diǎn)是沒有意義的,反正都是直線數(shù)的2倍
而部分?jǐn)?shù)=直線數(shù)+內(nèi)交點(diǎn)數(shù)+1
相鄰直線個(gè)數(shù)內(nèi)交點(diǎn)個(gè)數(shù)組成一個(gè)等差數(shù)列,這個(gè)等差數(shù)列公差為1, 1-0=1,3-1=2,6-3=3,10-6=4, 橫向看1+0=1,2+1=3,3+3=6...但是這樣還是用到了遞歸要求出上一個(gè)對應(yīng)的內(nèi)交點(diǎn)個(gè)數(shù),于是縱向看規(guī)律,2*1=2 3*2=6 4*3=12...正好是內(nèi)交點(diǎn)個(gè)數(shù)的2倍
相關(guān)文章
javascript動態(tài)分頁的實(shí)現(xiàn)方法實(shí)例
最近的項(xiàng)目需要添加一個(gè)分頁導(dǎo)航的功能,沒有用網(wǎng)上封裝好的文件,通過JS自己簡單實(shí)現(xiàn)了效果,這篇文章主要給大家介紹了關(guān)于javascript動態(tài)分頁的實(shí)現(xiàn)方法,需要的朋友可以參考下2022-06-06利用JavaScript實(shí)現(xiàn)春節(jié)倒計(jì)時(shí)效果(移動端和PC端)
這篇文章主要介紹了通過Html+Css+js如何實(shí)現(xiàn)春節(jié)倒計(jì)時(shí)效果,本文同時(shí)介紹了移動端和PC端兩種效果,感興趣的同學(xué)可以跟隨小編一起動手試試2022-01-01基于JavaScript+HTML編寫一個(gè)日期選擇插件
在現(xiàn)代Web應(yīng)用程序中,日期選擇器是一個(gè)非常常見的組件,用戶可以使用它來選擇特定的日期,在本篇文章中,我們將使用JavaScript和HTML來創(chuàng)建一個(gè)簡單但功能強(qiáng)大的日期選擇插件,這個(gè)日期選擇插件是比較考驗(yàn)Js基本功的,需要的朋友可以參考下2023-10-10在Firefox下js select標(biāo)簽點(diǎn)擊無法彈出
在Firefox下js select標(biāo)簽點(diǎn)擊無法彈出,在IE和CHROME下沒有此現(xiàn)象2014-03-03JS實(shí)現(xiàn)部分HTML固定頁面頂部隨屏滾動效果
這篇文章主要介紹了JS實(shí)現(xiàn)部分HTML固定頁面頂部隨屏滾動效果,涉及JavaScript響應(yīng)onscroll事件動態(tài)操作頁面元素屬性的相關(guān)技巧,需要的朋友可以參考下2015-12-12js replace正則表達(dá)式應(yīng)用案例講解
js replace與正則表達(dá)式結(jié)合,可以有效發(fā)揮replace的功效,可以幫助用戶解決替換中的復(fù)制問題,接下來詳細(xì)介紹使用方法,感興趣的朋友可以了解下2013-01-01