很抱歉,如果之前已经提出过这个问题,但我找不到与我想要做的事情相匹配。
我正在寻找一种算法来在C#(或相关的LINQ扩展)中执行以下操作。
给出一组数字(例如56 of 1 to 245
)中的数字,但不排除任何数字
和分区大小(例如10
)
我想找到给定数字所在的分区的起始编号。
实施例: 正在搜索56的起始页。
1-10
11-20
21-30
31-40
41-50
51-60 <-- 56 is in the partition starting with 51
..
231-240
241-245
答案 0 :(得分:4)
int page = 56;
int partition_size = 10;
int starting_number = (page / partition_size) * partition_size + 1;
答案 1 :(得分:1)
在VB.Net中有一个名为DivRem的Math函数,它将两个实数除以后给出余数。这与其他解决方案基本相同,但是当您使用内置数学函数时,它会扩展您的视野。
Dim startingindex, inputparam, delta As Integer
delta = 10
inputparam = 56
startingindex = inputparam - Math.DivRem(inputparam, delta, startingindex)
结果是:startingindex = 51