作业求助:按输入数量打印奇数,代码输出异常(少输出/无限循环)
解决奇数打印作业问题的思路与代码
嘿,我来帮你搞定这个奇数打印的作业问题!先理清楚你的需求:输入一个整数,输出和这个数数量相同的连续奇数(从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
相关产品推荐
相关产品推荐

