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

Python计算二进制列表0和1排列数代码运行错误求助

二进制列表排列统计代码问题修复

问题根因

  • 遍历逻辑错误:你编写的for i in x中,i已经是二进制列表的元素值(仅能为0或1),不是列表索引,后续判断中错误使用x[i]取值,本质是把元素值当成了索引使用。
  • 以你给出的测试用例1 1 0 1 1 0 1 1 0 0为例,列表第一个元素是1、第二个元素也是1,所以不管i取0还是1,x[i]的返回值永远为1,最终统计得到zero=0、one=10,代入公式计算得到10!/(0!*10!)=1,和你遇到的错误输出完全一致。

修复方案

直接判断遍历得到的元素值即可,不需要额外通过索引取值,修复后代码如下:

import math
x = list(map(int, input().split()))
zero = 0
one = 0
for i in x:
    if i == 0:
        zero += 1
    else:
        one += 1
print(math.factorial(len(x)) // (math.factorial(zero) * math.factorial(one)))

结果验证

你的测试用例中0的个数为4、1的个数为6,总长度为10,正确计算结果为10!/(4!*6!)=210,修复后的代码输入对应测试用例将输出210,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:09:02