首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求5的乘法范围

求5的乘法范围
EN

Stack Overflow用户
提问于 2016-11-11 08:22:24
回答 3查看 202关注 0票数 3

我有个号码。例如,我的号码是19。然后,我想在下拉列表中填充乘法范围为5的范围。因此,我的下拉列表将包括:1-5 6-10 11-15 16-19

我试过模数和除法,但是,我似乎无法得到范围。有固定的方法吗?

样本代码

代码语言:javascript
复制
List<string> range = new List<string>();
int number = 19;
int numOfOccur = (19/5);

for (int i = 1; i < numOfOccur ; i++)
{
range.Add(i + " - " + (i * 5))
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-11 08:34:35

有时候,我觉得旧的校规,没有花哨的linq是比较清楚的。

代码语言:javascript
复制
int maximum = 19;
int multiple = 5;
int init = 1;
while (init + multiple <= maximum )
{
    string addToDDL = init.ToString() + "-" + (init + multiple - 1).ToString();
    Console.WriteLine(addToDDL);
    init += multiple;
}
if(init <= maximum)
{
    string last = init.ToString() + "-" + maximum.ToString();
    Console.WriteLine(last);
}
票数 1
EN

Stack Overflow用户

发布于 2016-11-11 09:43:15

Linq解决方案(现代技术允许我们考虑它):

代码语言:javascript
复制
  int number = 19;
  int div = 5;

  List<string> range = Enumerable
    .Range(0, number / div + (number % div == 0 ? 0 : 1))
    .Select(i => $"{i * div + 1} - {Math.Min((i + 1) * div, number)}")
    .ToList();

测试

代码语言:javascript
复制
  Console.Write(string.Join(Environment.NewLine, range));

返回

代码语言:javascript
复制
  1 - 5
  6 - 10
  11 - 15
  16 - 19

当使用模运算时,不要忘记剩余数:在int numOfOccur = (19/5);行中有一个错误。它应该是

代码语言:javascript
复制
  int numOfOccur = 19 / 5 + (19 % 5 == 0 ? 0 : 1);  

对于即将进行的最后一个不完整的16 - 19范围。

票数 0
EN

Stack Overflow用户

发布于 2016-11-11 08:33:14

  1. 将此包添加到您的项目:https://www.nuget.org/packages/System.Interactive/
  2. 然后你就可以这样做: IEnumerable buffers2 = Enumerable.Range(1,19).Buffer(5);IList[] result2 = buffers2.ToArray();// {{ 1,2,3,4,5 },{ 6,7,8,9,10 },

不要忘记将System.Interactive命名空间添加到使用块中。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40543877

复制
相关文章

相似问题

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