首頁 >web前端 >js教程 >用javascript实现给出的盒子的序列是否可连为一矩型_javascript技巧

用javascript实现给出的盒子的序列是否可连为一矩型_javascript技巧

WBOY
WBOY原創
2016-05-16 19:09:201149瀏覽
点击在新窗口中浏览此图片
by cpglkg
<script><BR>var arr=[5,10,15];<br><br><BR>function rect(arr,width)<BR>{<BR> arr.sort(function(a,b){return a-b;});<BR> var len = arr.length;<BR> var temp = arr[0];<BR> var w = null;<BR> var h = null;<BR> for(var i = 0; i < len; i++)<BR> {<BR> if((temp + i) != arr[i])<BR> {<BR> w = i;<BR> if (len % w != 0)<BR> return false;<BR> h = len/w;<BR> break;<BR> }<BR> }<BR> var r = width - w;<BR> temp += r;<BR> for(var i = w; i < len; i++)<BR> {<BR> if(arr[i] != temp + i)<BR> {<BR> temp += r;<BR> if(arr[i] != temp + i)<BR> {<BR> return false;<BR> }<BR> }<BR> }<br><br> return true;<BR>}<BR>alert(rect(arr,6));<BR></script>


by 无殇
<script><BR>var rows=6;<BR>function ch(array){<BR>array=array.sort(function(a,b){return a-b;})<BR>var n,c=0;<BR>for(var i=1;i<array.length;i++)<BR>if(array[i]-array[i-1]==1)<BR>c++;<BR>else<BR>break;<BR>if(array.length%(c+1)!=0)return false;<BR>for(var i=1;i<array.length;i++)<BR>{<BR>n=array[i]-array[i-1];<BR>if(n!=1 && n+c!=rows)<BR>return false;<BR>}<BR>return true;<BR>}<BR>alert(ch([1,2,3]))<BR>alert(ch([5,6,11,12,17,18,23,24]))<BR>alert(ch([19,25,31]))<BR>alert(ch([1,2,3,4,7,8]))<BR></script>


by 秦皇也爱JS  

<script><BR> var arr = [5,10,15];<BR> var width = 6; <br><br> arr = arr.sort(function(a,b){ return a-b});<BR> var row = Math.ceil((arr[arr.length-1]-arr[0]+1)/width);<BR> var col = Math.floor(arr.length / row);<br><br> check();<BR> function check(){<BR> for(var i=0;i<arr.length-1;i++){<BR> if(arr[i+1] - arr[i] !=1 && i%col!=col-1 || i%col==col-1 && arr[i+1] - arr[i] != width-col+1){<BR> alert(false);<BR> return;<BR> }<BR> }<BR> alert(true);<BR> }<BR> </script>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn