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

如何仅用+、-、*运算判断N个数是否全奇或全偶(禁用%)

判断N个数是否全奇/全偶(无取模运算)

当然有可行的方法!咱们完全不用依赖取模%,只靠加减乘就能搞定这个判断,核心就是利用奇偶性的基本性质。下面一步步拆解思路:

核心逻辑:判断所有数的奇偶性是否一致

要确定N个数是全奇或全偶,本质就是看所有数的奇偶性是不是完全相同——只要不存在既有奇数又有偶数的情况,就符合要求。

怎么用减法判断单个数字的奇偶性

对于任意整数x,我们可以通过反复减去2,直到结果落到0或1的范围:

  • 最终得到0 → 这个数是偶数;
  • 最终得到1 → 这个数是奇数。

举个实际例子:

  • 比如x=9:9-2=7 → 7-2=5 →5-2=3 →3-2=1 → 结果是1,所以9是奇数;
  • 比如x=12:12-2=10 →10-2=8 →8-2=6 →6-2=4 →4-2=2 →2-2=0 → 结果是0,所以12是偶数。

这个过程全程只用减法,完全符合题目要求的运算限制。

扩展到N个数的判断步骤

假设你有一组数nums = [n1, n2, ..., nN],可以这么做:

  1. 先处理第一个数n1,用上面的减法方法得到它的奇偶性标记(比如用0代表偶数,1代表奇数,记为target);
  2. 挨个遍历剩下的每个数ni:
    • 同样用减法得到ni的奇偶性标记current;
    • 如果current和target不一样,直接就能判定这组数不是全奇也不是全偶,可以提前终止判断;
  3. 要是所有数的奇偶性标记都和target一致,那这组数就是全奇或者全偶啦。

小优化:减少减法次数

要是觉得反复减2太麻烦,其实可以用乘法快速缩小范围——比如先估算x里包含多少个2,用2 * k去减x,直到结果在0或1之间。比如x=100,直接用100-2*50=0,一步就能得到结果,不用减50次。这里用到了乘法和减法,也符合题目要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:41:38