如何检查一个int型是否能被另一个int型整除?使用c#,下面指定了条件



写一个方法:

public int IsXDivisibleByY(int X, int Y) { .. } 

满足以下条件:

  1. 方法返回1,如果X可以除以Y没有余数。

  2. 方法返回0,如果X不能除以Y没有余数。

  3. <
  4. 解决方案strong>别包括任何条件检查(if条件、相等运算符、三元和空合并运算符等)。

  5. <
  6. 解决方案strong>别包括任何异常处理(try-catch-finally)

  7. 必须考虑到这两个参数可以给定参数类型的所有范围。

如果不满足上述任何一个条件,答案将被认为是错误的。-

使用c#。

这是我的解决方案,它只使用模数和位操作(它也使用条件检查for循环,但它可以很容易地被32显式代码块取代,为了更好看,我将省略这个)。

public int IsXDivisibleByY(int X, int Y)
{
var mod = (int)((float) X % (float) Y);
var accum = 0;
for (var i = 0; i < 32; i++)
{
accum = accum | (mod & 1);
mod = mod >> 1;
}
return accum ^ 1;
}

相关内容

最新更新