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

 更新时间:2007年08月30日 20:37:11   作者:  
点击在新窗口中浏览此图片
by cpglkg
<script>
var arr=[5,10,15];


function rect(arr,width)
{
   arr.sort(function(a,b){return a-b;});
   var len = arr.length;
   var temp = arr[0];
   var w = null;
   var h = null;
   for(var i = 0; i < len; i++)
   {
       if((temp + i) != arr[i])
       {
           w = i;
           if (len % w != 0)
               return false;
           h = len/w;
           break;
       }
   }
   var r = width - w;
   temp += r;
   for(var i = w; i < len; i++)
   {
       if(arr[i] != temp + i)
       {
           temp += r;
           if(arr[i] != temp + i)
           {
               return false;
           }
       }
   }

   return true;
}
alert(rect(arr,6));
</script>


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


by 秦皇也爱JS  

<script>
  var arr = [5,10,15];
  var width = 6;  

  arr = arr.sort(function(a,b){ return a-b});
  var row = Math.ceil((arr[arr.length-1]-arr[0]+1)/width);
  var col = Math.floor(arr.length / row);

  check();
  function check(){
    for(var i=0;i<arr.length-1;i++){
      if(arr[i+1] - arr[i] !=1 && i%col!=col-1 || i%col==col-1 && arr[i+1] - arr[i] != width-col+1){
        alert(false);
        return;
      }
    }
    alert(true);
  }
 </script>

相关文章

  • 基于JS实现任务队列的示例代码

    基于JS实现任务队列的示例代码

    顾名思义,任务队列就是存放任务的队列,队列中的任务都严格按照进入队列的先后顺序执行,所以下面我们就来看看如何基于JS实现任务队列吧
    2023-08-08
  • 微信小程序实现预览图片功能

    微信小程序实现预览图片功能

    这篇文章主要为大家详细介绍了微信小程序实现预览图片功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • layui+ssm实现数据批量删除功能

    layui+ssm实现数据批量删除功能

    本篇文章给大家介绍layui+ssm实现数据批量删除功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12
  • JS仿Windows实现桌面主题特效

    JS仿Windows实现桌面主题特效

    这篇文章主要介绍了如何利用HTML+CSS+JS模仿Windows实现桌面主题特效,文中的示例代码讲讲详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-06-06
  • JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解

    JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解

    这篇文章主要介绍了JS/HTML5游戏常用算法之碰撞检测 像素检测算法,结合实例形式详细分析了javascript像素检测碰撞算法的原理、实现步骤及相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • js中点击空白区域时文本框与隐藏层的显示与影藏问题

    js中点击空白区域时文本框与隐藏层的显示与影藏问题

    文本框获得焦点的时在文本框的下方显示一个浮动层,点击文本框隐藏浮动层,下面为大家介绍下鼠标点击时文本框与隐藏层处理问题,感兴趣的朋友可以参考下
    2013-08-08
  • Javascript String 字符串操作包

    Javascript String 字符串操作包

    提供一个 JS String 包,包含了一些常用的对字符串操作的函数,详细的请看源码及演示
    2010-10-10
  • JavaScript异步加载浅析

    JavaScript异步加载浅析

    这篇文章主要介绍了JavaScript异步加载浅析,本文讲解了脚本延迟执行、脚本的完全并行化、可编程的脚本加载等内容,需要的朋友可以参考下
    2014-12-12
  • JavaScript 事件冒泡应用实例分析

    JavaScript 事件冒泡应用实例分析

    在一些传统的小型WEB应用开发过程中,JavaScript通常只是拿来做表单验证而以,所以你很少会遇到因为JavaScript事件冒泡而影响功能的实现情况,又或者事件冒泡对最终实现效果影响不大,可忽略。
    2010-01-01
  • 围观tangram js库

    围观tangram js库

    Tangram开源将近一周,持续围观了几天。写一个简单的围观笔记吧。
    2010-12-12

最新评论