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

无分支无循环实现2-4位数字连续差(含首尾)一致性校验

解决多位数环形等差数字校验问题(无分支、循环、函数)

需要编写Python程序接收2位、3位或4位数字,校验以下规则:

  • 每两个连续数字的差的绝对值完全相同
  • 首尾数字的差的绝对值也等于该差值
    要求:不得使用函数、循环、if/else分支语句

原尝试代码的问题:

  • 第一版通过拆分数字位判断,但逻辑组合错误,无法兼容不同位数输入
  • 第二版使用if/elif/else分支,违反规则

解决方案代码

num_str = input("Enter a number: ").zfill(4)
d0 = int(num_str[0])
d1 = int(num_str[1])
d2 = int(num_str[2])
d3 = int(num_str[3])

diff01 = abs(d0 - d1)
diff12 = abs(d1 - d2)
diff23 = abs(d2 - d3)
diff30 = abs(d3 - d0)
diff31 = abs(d3 - d1)

result = (
    (d0 != 0) and (diff01 == diff12 == diff23 == diff30)
) or (
    (d0 == 0 and d1 != 0) and (diff12 == diff23 == diff31)
) or (
    (d0 == 0 and d1 == 0)
)

print(result)

代码说明

  1. 统一格式处理:用zfill(4)将输入字符串补前导零至4位,让2位、3位、4位数字统一为4位格式,避免分支判断位数
  2. 提取数字位:将4位字符串的每个字符转为整数d0(千位)、d1(百位)、d2(十位)、d3(个位)
  3. 差值计算:预计算所有需要的差值(连续位差值、首尾位差值)
  4. 逻辑判断:通过逻辑或组合三种位数的校验条件:
    • 4位数字:千位不为0,所有连续位差值与首尾差值相等
    • 3位数字:千位为0、百位不为0,百位-十位、十位-个位的差值,与个位-百位的差值相等
    • 2位数字:千位和百位都为0,此时连续差值与首尾差值必然相等,直接判定为真

测试示例验证

  • 输入4840 → 返回True(所有差值均为4)
  • 输入59 → 返回True(两位数字自动满足条件)
  • 输入131 → 返回False(首尾差值0≠连续差值2)
  • 输入2420 → 返回True(所有差值均为2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:05:38