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

如何用Java循环实现数字逐位正序竖直打印?

问题原因

你当前的代码通过num % 10每次拿到的是数字的最低位,所以会从个位开始倒序输出,不符合正序要求。

解决方案1:递归实现(代码简洁)

递归会先向下遍历到最高位,再逐层回溯打印,刚好实现正序输出:

public static void verticalLoop(int num) {
    // 递归终止条件:不足两位时直接打印当前位
    if (num < 10) {
        System.out.println(num);
        return;
    }
    // 优先处理高位部分
    verticalLoop(num / 10);
    // 再打印当前位
    System.out.println(num % 10);
}

解决方案2:循环实现(避免大数递归栈溢出)

如果输入的数字位数极多,递归可能导致栈溢出,可以用循环先计算位数,再从最高位开始逐位打印:

public static void verticalLoop(int num) {
    // 先计算最高位对应的除数
    int divisor = 1;
    int temp = num;
    while (temp >= 10) {
        divisor *= 10;
        temp /= 10;
    }
    // 从最高位开始逐位打印
    while (divisor > 0) {
        System.out.println(num / divisor);
        num = num % divisor;
        divisor /= 10;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:36:02