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

递归工作原理与整数数位操作方法,Java递归转五进制输出修正

递归实现五进制转换的顺序问题修正

你的代码输出顺序颠倒,核心问题出在打印语句和递归调用的顺序上。原代码先打印当前计算的余数,再递归处理商,这会导致先输出最低位,最后才输出最高位,自然和正确的五进制顺序相反。

要修正这个问题,只需要调整顺序:先递归处理商,再打印余数。这样递归会先深入到数字的最高位,等递归回溯的时候再依次打印每一位,就能得到正确的顺序。

以231为例,修正后的执行流程是:

  • 231 → 计算商46、余数1 → 先递归处理46
  • 46 → 计算商9、余数1 → 递归处理9
  • 9 → 计算商1、余数4 → 递归处理1
  • 1 → 计算商0、余数1 → 递归到n=0返回,此时开始打印1(1的余数)
  • 回到9的递归层,打印4(9的余数)
  • 回到46的递归层,打印1(46的余数)
  • 回到231的递归层,打印1(231的余数)
    最终输出就是正确的1411。

修正后的代码如下:

public void base5(int n){
    int rem = n % 5;
    int vis = n / 5;
    if(n != 0){
        // 先递归处理商,再打印余数
        base5(vis);
        System.out.print(rem);
    } else {
        return;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:25:38