首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从单数创建范围

从单数创建范围
EN

Stack Overflow用户
提问于 2013-01-21 00:28:56
回答 1查看 154关注 0票数 1

解决了,杰夫和埃里克,非常感谢。最后,我不得不用Eric的解决方案做一个小小的改变。

代码语言:javascript
运行
复制
for(; i+4<=n; i+=4)

这就是我要用的方法:

代码语言:javascript
运行
复制
function findRange(n,div)
{
var odd =1&n;
var i = 0;
var ranges = [];

  for(; i + div<= n; i+=div) 
  {
     ranges.push([i+1, i+div]); // in array 1-4 / 5-8 etc
     // or in side cases the 2nd part of the array contains the remainder
     ranges.push([i+1, n]); // 1-16,5-16,9-16,etc
     ranges.push([i+div, n]); // 4-16,8-16,12-16,etc

     if(odd === 1)
     {
        ranges.push([i+div+1, n]); // in case of input 7 creates array 5-7
     }
  }

return ranges;
}
console.log(findRange(16,4)); 

此解决方案回答以下问题

问题1:

如何从f.e创建范围(1-4,5-8,9-12,13-16)。数字16

问题4:

如何从该范围(1和4、5和8等)找到第一和最后一个数字

问题2:

如何处理输入编号为17的情况,这将给出这些范围1-4、5-8、9-12、13-16和剩余的17。

下面是原始问题。

我需要知道如何从单个数字创建一个范围,其中单个数字是可变的。范围总是需要在4个位置之内。每个范围我需要知道第一个和最后一个号码。每个范围我需要知道中间的数字。

例如:单个(输入)数字为16,它提供了以下4个范围4 (1-4,5-8,9-12,13-16)。

问题1:

如何从f.e创建范围(1-4,5-8,9-12,13-16)。数字16

问题2:

如何处理输入编号为17的情况,这将给出这些范围1-4、5-8、9-12、13-16和剩余的17。

问题3:

如何处理输入编号为3,范围为1-3的情况

下面的问题是可选的,因为这些答案可能可以在堆栈中找到。

问题4:

如何从该范围(1和4、5和8等)找到第一和最后一个数字

问题5:

如何找到范围内的数字(range1: 1,2,3,4连range2: 5,6,7,8等)。

我还没有真正尝试过什么,因为我根本不知道怎么走第一步。

我试过的一件事是使用%(模数),但这不是答案。我试过这个:

代码语言:javascript
运行
复制
var x=16;

for(var i=0; i<=x; i++)
{
  for(i % 4 === 0)
  {
    return i;
  }
}

它给了我4,8,12,16,这是很好的,但远不是我想要的。我已经厌倦了为此而绞尽脑汁。我很好奇有什么办法解决这个问题。

我不确定它是否允许这样问问题。但由于它们都与范围有关,我认为最好是尽可能具体地说明我正在寻找的内容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-21 00:40:33

代码语言:javascript
运行
复制
var i = 0;
var ranges = [];
for(; i + 4< n; i+=4) ranges.push([i+1, i+4]);
ranges.push([i+1, n])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14430953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档