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

如何用Ruby实现求解含x的简单数学等式中缺失数字的算法

Ruby 实现 missing_digit 函数

实现逻辑

  • 拆分输入字符串,提取等式两侧的操作数、运算符和结果
  • 遍历0-9的所有数字,依次替换表达式中的x字符
  • 验证替换后的等式是否成立,匹配成功直接返回当前数字
  • 除法场景额外处理整除判断和除0异常规避

代码实现

def missing_digit(str)
  # 拆分等式得到操作数、运算符、结果
  left_num, operator, right_num, _, target = str.split
  
  (0..9).each do |digit|
    # 替换所有x为当前测试数字
    a = left_num.gsub('x', digit.to_s).to_i
    b = right_num.gsub('x', digit.to_s).to_i
    res = target.gsub('x', digit.to_s).to_i

    # 按运算符校验等式
    case operator
    when '+'
      return digit if a + b == res
    when '-'
      return digit if a - b == res
    when '*'
      return digit if a * b == res
    when '/'
      # 规避除0,同时保证整除避免浮点数误差
      return digit if b != 0 && a % b == 0 && a / b == res
    end
  end
end

测试用例验证

  • 示例1:missing_digit("4 - 2 = x") 输出:2
  • 示例2:missing_digit("1x0 * 12 = 1200") 输出:0
  • 补充示例:missing_digit("3x + 12 = 46") 输出:4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:48:02