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

如何编写程序实现任意位数整数按对应数字重复打印对应次数

编程问题实现方案

你现有的数字拆分逻辑存在两处问题:

  • 赋值逻辑颠倒:每次循环中 num % 10 得到的是当前最低位的数字,num // 10 才是去掉最后一位后的新数值,你的原有代码把两者的赋值对象写反了
  • 输出顺序不符:直接通过数值运算拆分得到的是从低位到高位的数字,和输入的顺序相反,输出前需要反转顺序,同时还要单独处理输入为0的边界情况,否则循环不会执行

下面给出两种可直接运行的实现:

方案1:基于数值运算的实现(匹配你原有的拆分思路)

# 读取输入转为整数
num = int(input())
digits = []

# 单独处理输入为0的特殊情况
if num == 0:
    digits.append(0)
else:
    temp = num
    while temp > 0:
        # 取余数得到当前最后一位数字
        digit = temp % 10
        digits.append(digit)
        # 整除10去掉最后一位
        temp = temp // 10

# 反转列表得到和输入顺序一致的数字位
digits = digits[::-1]

# 逐位输出对应结果
for d in digits:
    print(f"{d}: {str(d)*d}")

方案2:基于字符串处理的实现(更简洁,无需处理顺序和边界问题)

# 直接读取输入为字符串,逐位遍历
num_str = input()
for c in num_str:
    d = int(c)
    print(f"{d}: {c*d}")

效果验证

输入为6041时,两种方案的输出均为:

6: 666666
0:
4: 4444
1: 1
完全匹配需求要求的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:24:05