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

求修复C++取余判断代码:无法处理n=0等边界情况

问题需求

给定四个均不超过10^6的整数m、n、k、l,要求实现以下逻辑:

  • 当m % n == k 或 m % n == l时,输出1
  • 其他情况输出任意非1数字
  • 禁止使用条件运算符

输入输出示例

12 8 3 4 // 输入
1 // 输出

0 5 1 2 // 输入
0 // 输出

现有实现代码

#include <iostream>

using namespace std;

int main()
{

int m, n, k, l;
cin >> m >> n >> k >> l;

cout << ((1 / (((m % (n + 1 / (n + 1))) - k) * ((m % (n + 1 / (n + 1))) - k) + 1)) - 1) * ((1 / (((m % (n + 1 / (n + 1))) - l) * ((m % (n + 1 / (n + 1))) - l) + 1)) - 1) + 1;

return 0;
}

问题与修复请求

现有代码存在缺陷:当输入0 0 0 0时,代码错误输出1,但实际n=0时取余操作无定义,应输出任意非1数字。此外,n=0的场景未被正确处理,导致逻辑错误,恳请帮忙修复代码,使其能覆盖所有合法输入情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:01:14