如何修改Collatz公式计算器仅输出最终步数而非每步过程?
修改Collatz计算器代码以仅输出总步数
原代码存在嵌套循环冗余、多余打印语句等问题,以下是修改后的代码及说明:
修改后的代码
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int c0 = input.nextInt(); int steps = 0; // 单循环控制Collatz计算流程 while (c0 != 1) { if (c0 % 2 == 0) { c0 = c0 / 2; } else { c0 = 3 * c0 + 1; } steps++; // 每完成一次操作,步数加1 } // 计算结束后仅输出总步数 System.out.println("总步数:" + steps); input.close(); // 关闭输入资源 } }
关键修改点
- 移除了嵌套的
while (c0 != 1)循环,避免逻辑重复与错误 - 删除所有中间步骤的
System.out.println语句,不再打印每一步的数值和临时步数 - 用简洁的
steps++替代冗余的steps = steps + 1写法 - 移除无意义的
steps = steps - 0代码 - 增加
input.close()关闭Scanner,避免资源泄漏 - 仅在整个计算流程结束后,打印最终的总步数
内容的提问来源于stack exchange,提问作者user20245205
相关产品推荐
相关产品推荐

