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

如何实现数字按位拆分并以累加表达式形式输出?

问题解决思路与代码修改

你的代码已经正确提取了每个数位对应的权值,但生成的列表顺序是反的——比如输入35时,list1是[5, 30],而我们需要的是[30, 5]。只需要几步调整就能得到预期输出:

  • 反转列表,让元素按高位到低位排列;
  • 将列表中的每个数字转成字符串;
  • 用+(或带空格的+)把这些字符串连接起来;
  • 把连接好的字符串作为函数返回值,替代原有的列表打印操作。

修改后的完整代码

def place(n):
    total = 1
    value = 0
    list1 = []
    while n != 0:
        rem = n % 10
        n = n // 10
        value = total * rem
        list1.append(value)
        total *= 10
    # 反转列表得到正确的高位到低位顺序
    list1.reverse()
    # 用'+'连接所有元素(想要带空格格式就换成' + ')
    return '+'.join(map(str, list1))

n = int(input())
print(place(n))

测试效果

  • 输入35,输出30+5;
  • 输入456,输出400+50+6。

如果想要带空格的分隔格式(比如30 + 5),只需把代码中的'+'.join(...)改成' + '.join(...)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:55:31