在哪里可以找到有关int%5的更多信息?

时间:2011-05-21 14:02:21

标签: c#

我想知道int id = 5%2;确切地说并且也寻找类似的东西。

原因:

我想用一个数字来计算该项目应该站在哪一行/列。

[实施例]

我有一个5x5的网格。

如果id = 05,它应该在第1行和第5列

如果id = 10,它应该在第2行和第5列

如果id = 12,它应该在第3行和第2列

你如何抓住我的漂移!

(ps:随时可以编辑我的代码。不确定该问题的内容)

2 个答案:

答案 0 :(得分:2)

模数(某些C衍生语言中的%)是当一个数被另一个数除以时剩余的余数。因此38 % 6238 / 66,其余为2。)

它通常用于你所询问的那种东西。如果您的5x5网格是:

    col  1  2  3  4  5
row
 1       1  2  3  4  5
 2       6  7  8  9 10
 3      11 12 13 14 15
 4      16 17 18 19 20
 5      21 22 23 24 25

然后该行可以计算为(x-1)/5+1(整数除法而不是浮点数),列可以计算为(x-1)%5+1

 x   (x-1)/5+1   (x-1)%5+1
--   ---------   ---------
 5       1           5
10       2           5
12       3           2

您最初减去一个然后添加它的原因是因为模数在从零开始的数字上效果最佳,而您的基于一个数字。减法/加法是在执行模数之前将您的方案变为从零开始,然后在之后将其转回到一个基础上。

答案 1 :(得分:1)

%Modulus Operator,或者更常见的是余数。因此5%2会为您提供1的ID。使用此功能,您可以计算网格中的rowcolumn值。例如,

id = 5;
column = (id - 1)%5 + 1;
row = (id - 1)/5 + 1;

- 1是因为您似乎从1开始而不是0