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

不使用数组列表实现整数各位升序排列,如何解决前导零问题

整数各位升序重排前导零问题解决方案

首先点明两个核心问题:

  1. 你现有代码里的sortedN==10是相等判断,没有赋值效果,属于无效代码
  2. 你遇到的前导零无法拼接的问题,本质是int类型为数值类型,数值本身不支持前导零,比如0123作为int存储时会自动转为123,不存在保留前导零的可能。如果你需要保留前导零的展示效果,必须将返回值改为字符串类型;如果仅要求数值符合升序规则,只需要调整拼接顺序跳过前导零即可。

以下是符合「不使用数组/列表」要求的修正代码,适配任意位数正整数:

int ascendingNumbers (int n) {
    int sortedN = 0;
    int temp;
    // 先处理非零数字,从1开始遍历避免前导零
    for (int i = 1; i <= 9; i++) {
        temp = n;
        while (temp > 0) {
            if (temp % 10 == i) {
                sortedN = sortedN * 10 + i;
            }
            temp /= 10;
        }
        // 第一个非零数字处理完后,拼接所有0
        if (sortedN != 0 && i == 1) {
            temp = n;
            while (temp > 0) {
                if (temp % 10 == 0) {
                    sortedN *= 10;
                }
                temp /= 10;
            }
        }
    }
    // 特殊处理输入全为0的情况
    return sortedN == 0 ? 0 : sortedN;
}

测试效果示例:

  • 输入1032,输出1023
  • 输入100,输出100
  • 输入4302,输出2034

如果确实需要输出带前导零的结果,因为数值类型不支持前导零,必须使用字符串输出,如果你允许用字符数组作为输出载体(不属于存储数字的数组/列表,符合要求),可以按相同逻辑拼接字符即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:57:04