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

作业求助:按输入数量打印奇数,代码输出异常(少输出/无限循环)

解决奇数打印作业问题的思路与代码

嘿,我来帮你搞定这个奇数打印的作业问题!先理清楚你的需求:输入一个整数,输出和这个数数量相同的连续奇数(从1开始),比如输入7就输出1,3,5,7,9,11,13。

先分析你遇到的两个问题

  • 只输出1、3、5:大概率是你的循环终止条件写错了——比如你让循环跑到某个固定数值(比如5)就停,而不是循环够输入的次数。比如输入7但只循环了3次,自然只生成3个奇数。
  • 无限循环打印输入数字:这通常是因为循环里没更新控制变量,或者循环条件永远成立。比如你一直打印输入的那个数,但没改变它的值,也没设置正确的退出条件,导致循环停不下来。

正确的实现方式(以Python为例)

方法1:用for循环(直观易懂)

# 获取用户输入的数量
count = int(input("请输入要生成的奇数数量:"))
current_odd = 1  # 第一个奇数是1
output = []

# 循环count次,每次生成一个奇数
for _ in range(count):
    output.append(str(current_odd))
    current_odd += 2  # 每次加2得到下一个奇数

# 用逗号连接所有奇数并输出
print(','.join(output))

方法2:用列表推导式(更简洁)

如果你想写得更紧凑,可以用列表推导式直接生成所有奇数:

count = int(input("请输入要生成的奇数数量:"))
# 第k个奇数的公式是2k-1,k从1到count
odds = [str(2*k - 1) for k in range(1, count + 1)]
print(','.join(odds))

验证示例

当你输入7时,两种方法都会输出:1,3,5,7,9,11,13,完全符合你的需求。

如果你的作业要求用其他语言(比如Java、C++),核心思路也是一样的:循环输入的次数,每次从1开始,每次加2生成下一个奇数,然后把这些数收集起来或者直接输出就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:03:29