0

抱歉,如果以前有人问过这个问题,但我找不到适合我想做的事情的匹配项。

我正在寻找一种算法来在 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
4

2 回答 2

4
int page = 56;
int partition_size = 10;

int starting_number = (page / partition_size) * partition_size + 1;
于 2013-01-06T20:06:35.677 回答
1

在 VB.Net 中有一个名为 DivRem 的数学函数,它将两个实数相除并给出余数。这与其他解决方案基本相同,但是当您使用内置的数学函数时,它会扩展您的视野。

        Dim startingindex, inputparam, delta As Integer
        delta = 10
        inputparam = 56
        startingindex = inputparam - Math.DivRem(inputparam, delta, startingindex)

结果是:startingindex = 51

于 2013-01-06T20:16:15.033 回答