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

如何让循环随每次迭代变化的number变量持续运行直至得到123?

问题解决:自动迭代生成123的奇偶统计循环

原代码存在的问题

  • 奇偶统计变量evennumbers和oddnumbers在循环外初始化,未在每次循环重置,导致累计了历史所有数字的奇偶数据,而非当前处理的数字。
  • 总长度a仅在初始时赋值,未随每次循环的新数字更新,无法正确反映当前数字的总位数。
  • 错误使用input(print(...)),题目要求自动生成新数字,无需手动输入,直接赋值计算结果即可。

修正后的代码

# 获取初始输入数字
number = input("请输入初始数字: ")

while number != '123':
    even_count = 0
    odd_count = 0
    # 遍历当前数字的每一位统计奇偶
    for digit in number:
        num = int(digit)
        if num % 2 == 0:
            even_count += 1
        else:
            odd_count += 1
    # 计算当前数字总位数
    total_count = len(number)
    # 生成新数字并更新循环变量
    number = f"{even_count}{odd_count}{total_count}"
    # 可选:打印迭代过程,方便观察
    print(f"当前生成数字: {number}")

print("已得到目标数字123")

修正说明

  • 每次循环开始时重置even_count和odd_count为0,确保只统计当前数字的奇偶数量。
  • 总位数直接取当前number的长度,保证每次计算的准确性。
  • 直接将奇偶数量+总位数拼接成新字符串赋值给number,实现自动循环迭代,无需人工介入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:30:52