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

Java入门求助:如何实现逐位递增数字的查找方法?

帮你实现逐位递增数字的查找方法

嘿,刚学Java遇到卡壳太正常啦!别着急,我来一步步帮你搞定这个需求~

首先咱们明确目标:逐位递增的数字指的是每一位数字都严格大于前一位,比如1234567,从左到右每一位都比前一位大;而像12405346里有0<4,就不符合要求。

第一步:写一个判断单个数字是否递增的工具方法

咱们可以先封装一个方法,专门用来判断某个整数是不是逐位递增的。逻辑很简单:把数字的每一位拆出来,依次比较相邻两位,只要有一位不大于前一位,就判定不符合;全部符合就返回true。

代码示例:

public static boolean isIncreasingNumber(int num) {
    // 个位数没有相邻位,默认算递增
    if (num < 10) {
        return true;
    }
    
    int lastDigit = num % 10; // 先取最后一位作为参考
    num = num / 10; // 去掉最后一位
    
    while (num > 0) {
        int currentDigit = num % 10;
        // 如果当前位 >= 上一位,说明不满足递增
        if (currentDigit >= lastDigit) {
            return false;
        }
        // 更新参考位,继续循环
        lastDigit = currentDigit;
        num = num / 10;
    }
    // 所有相邻位都满足递增,返回true
    return true;
}

第二步:在主程序里使用这个方法

有了上面的工具方法,咱们就可以遍历你输入的数组,逐个判断并输出符合条件的数字了。比如在你的现有代码后面加上这段:

// 查找并输出逐位递增的数字
System.out.println("逐位递增的数字:");
for (int number : sourceNumber) {
    if (isIncreasingNumber(number)) {
        System.out.println(number);
    }
}

小提醒:避免修改原数组元素

看了你之前写的「找不同数字最少」的代码,发现你直接修改了sourceNumber[k]的值(sourceNumber[k] /= 10),这样会导致原数组里的数字被改成0,后面再用的时候就出问题啦!建议改成用临时变量操作:

// 原来的代码片段修改后
int tempNum = sourceNumber[k]; // 用临时变量存原数字
while (tempNum != 0) {
    digitsCount1[tempNum % 10]++;
    tempNum /= 10; // 修改临时变量,不影响原数组
}

这样你的原数组就能保持完整,既可以用来找不同数字最少的数,也能用来找逐位递增的数~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 19:17:27