将数字拆分为特定大小的片段
本文关键字:片段 数字 拆分 | 更新日期: 2023-09-27 18:28:02
我有一个数字33
,想要将其拆分为多个10
以获得列表30,20,10,0
,我还需要删除数字3
I。
当然,所有的数字都是例子,它们可以改变。
我该怎么做?我大脑的数学部分休息了一天。
从数字中减去10的模数,然后除以10。创建一个以值10为增量、长度为n/10的列表。
Num = num - (num % 10);
list<int> stuff;
for (int i = 0; i == (num /10); i++)
stuff.add((i*10));
现在有点晚了,我喝了一杯啤酒,所以我的代码可能有点不对劲。
List<int> Splitter(int num, int mult)
{
if(mult<=0)
return null;
int sign = 1;
if(num < 0)
{
num = - num;
sign = -1;
}
var result = new List<int>(num / mult);
num = num - num % mult;
while(num >= 0)
{
result.Add(num);
num -= mult;
}
return result;
}
但这并没有什么乐趣。让我们试试LINQ吧。我认为一切都是积极的。
Enumerable.Range((num + mult - 1) /mult).Select(x=>x*mult).Reverse();
Range参数为num/mult四舍五入。
这将把一个整数分解成任何大小的块(而不仅仅是10):
static public IEnumerable<int> BreakUpInteger(int input, int chunkSize)
{
if(chunkSize <= 0)
{
throw new ArgumentException("Chunk size must be greater than zero.", "chunkSize");
}
if(input <= 0)
{
throw new ArgumentException("Input must be greater than zero.", "input");
}
for (var i = 1; i <= input / chunkSize; i++)
{
yield return i * chunkSize;
}
}