You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何不使用条件判断(if、三元运算符等)判断数字能否被另一个数整除

无需条件判断实现整除校验的方案

核心思路是利用取模运算特性和布尔值与整数的转换规则实现,全程不需要条件分支、三元运算符等禁用语句:

  • 先计算X对Y取模的结果 X % Y:如果两数可整除,取模结果为0;不可整除则结果为非0
  • 对取模结果做逻辑非运算:0的逻辑非结果为真,非0值的逻辑非结果为假
  • 将布尔结果转换为整数:真对应返回值1,假对应返回值0,刚好匹配需求

不同语言的实现示例如下:

Python 实现

def is_divisible(x: int, y: int) -> int:
    # 直接利用布尔值转整数规则,无任何判断语句
    return int(not (x % y))

Java 实现

public static int isDivisible(int x, int y) {
    // 纯数学运算实现,无判断逻辑,利用整数除法截断特性
    return 1 - (Math.abs(x % y) + (Integer.MAX_VALUE - 1)) / Integer.MAX_VALUE;
}

C 语言实现

int isDivisible(int x, int y) {
    // C语言默认布尔表达式返回整数值,真为1假为0
    return !(x % y);
}

上述方案默认Y为非0正整数,若需兼容Y为0的场景可额外叠加异常捕获逻辑,不影响核心判断规则。

内容的提问来源于stack exchange,提问作者Ajinkya Jagtap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:24:02