如何将第一个数字(如果不是最大的数字)与整数中的最大数字交换

不可避免的克里斯

编辑:我无法跟踪整数中的第二个大数字,并将其与整数中的第一个数字交换,以使整数成为最大...(例如,如果我有输入,因为31548我无法交换3与8一样,因为我的代码将3与5交换并给出51348并再次通过其余部分运行,然后与8交换并给出81345我不想要的...)和对于具有最高数字的数字序列已经位于最左边的位置,例如如果我的输入是877115755,则输出应忽略前三位877,并考虑较小的第四位1,并交换下一个出现的7和输出877715155。

public static void main(String[] args) {

    int value = 621007349;

    String number = String.valueOf(value);

    int[] arr = new int[number.length()];

    int length = (int) (Math.log10(value) + 1);

    for (int i = 0; i < length; i++) {
        System.out.println("Char at " + number.charAt(i));
        arr[i] = number.charAt(i) - '0';
    }

    int var = 0;
    for (int i = 0; i < arr.length; i++) {
        int temp = arr[i];
        for (int j = i; j < arr.length-1; j++) {
            if (j < arr.length - 1) {
                if (arr[j + 1] > temp) {
                    if (var < arr[j + 1]) {
                        var = arr[j + 1];
                        System.out.println("Larg Val " + arr[j+1]);
                        System.out.println("First no "+arr[i]);

                        int tmp = arr[j+1];
                        arr[j+1] = arr[i];
                        arr[i] = tmp;
                    }
                }
            }
        }
    }

    for (int j = 0; j < arr.length; j++) {
        System.out.println("Values in arry are " + arr[j]);
    }
}

输入为621007349,输出应为921007346

请帮助我我在哪里出错了...

Lrrr

编辑:添加一个while循环,之后将第一个可能的数字替换为最大数字:

我删除了内部循环并略微更改了条件(也从循环内部删除了对后循环的交换),现在您的代码可以正常工作了:

public static void main (String[] args) throws java.lang.Exception
{
    int value = 877115755;

    String number = String.valueOf(value);

    int[] arr = new int[number.length()];

    int length = (int) (Math.log10(value) + 1);
    for (int i = 0; i < length; i++) {
        arr[i] = number.charAt(i) - '0';
    }
    int var = arr[0];
    int index = 0;
    int startIndex = 0;
    boolean changed = false;

    while(startIndex<arr.length-1){
        var = arr[startIndex];
        for (int i = startIndex+1; i < arr.length; i++) {
            int temp = arr[i];
            if (temp > var) {
                var = temp;
                index = i;
                changed = true;
                System.out.println("Larg Val "+arr[i]);
            }
        }
        if(changed)
            break;
        startIndex++;
    }

    //this is the swap part
    int tmp = arr[index];
    arr[index] = arr[startIndex];
    arr[startIndex] = tmp;  

    for (int j = 0; j < arr.length; j++) {
        System.out.println("Values in arry are " + arr[j]);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找数组中最大数字的代码,但它只将第一个数字显示为最大的数字。有人请让我知道为什么

来自分类Dev

数字反转程序仅给出输出的第一个数字,而不是整数

来自分类Dev

Javascript - 从对象列表中获取最大数量,每个对象都有一个数字属性

来自分类Dev

将前5个数字中的第二和第三个最大数字相加

来自分类Dev

即使我将内部版本的最大数量设置为一个数字,Jenkins中的存档目录也会保存吗?

来自分类Dev

是否可以将0作为第一个数字存储在整数变量中

来自分类Dev

如何创建获取4个数字并返回最大数字的max方法?

来自分类Dev

如何将数字转换为R中另一个数字的第一个整除数

来自分类Dev

如何找到一个包含特定字符串和最大数字的对象?

来自分类Dev

当第一个数字表示最后一个索引时如何找到数组中的最大差异

来自分类Dev

排序时读取两个数字而不是第一个整数

来自分类Dev

如果第一列等于其他行,则选择该列中的最大数字

来自分类Dev

如何从一系列数字中获得最小和最大数字?

来自分类Dev

返回数组中的最大数字

来自分类Dev

如何替换第一个数字?

来自分类Dev

如何获得文件中的最大数字?

来自分类Dev

如何获得文件中的最大数字?

来自分类Dev

如何从用户输入中打印最大数字

来自分类Dev

如何找到不在列表中的最大数字?

来自分类Dev

Python从字符串中删除第一个数字(如果为0)

来自分类Dev

如何从数字输入文件中找到最大数字

来自分类Dev

从MathRandom生成的数字中打印最大数字

来自分类Dev

如何显示数据库表的列之一的三个最大数字?

来自分类Dev

如何显示数据库表的列之一的三个最大数字?

来自分类Dev

AS3-如何在数组中查找两个最大数字

来自分类Dev

AS3-如何在数组中查找两个最大数字

来自分类Dev

如何访问我的优先队列中的 10 个最大数字

来自分类Dev

如何使用sed匹配并保持第一个数字在一行中?

来自分类Dev

如何在列表中的元组中检查第一个数字?

Related 相关文章

  1. 1

    查找数组中最大数字的代码,但它只将第一个数字显示为最大的数字。有人请让我知道为什么

  2. 2

    数字反转程序仅给出输出的第一个数字,而不是整数

  3. 3

    Javascript - 从对象列表中获取最大数量,每个对象都有一个数字属性

  4. 4

    将前5个数字中的第二和第三个最大数字相加

  5. 5

    即使我将内部版本的最大数量设置为一个数字,Jenkins中的存档目录也会保存吗?

  6. 6

    是否可以将0作为第一个数字存储在整数变量中

  7. 7

    如何创建获取4个数字并返回最大数字的max方法?

  8. 8

    如何将数字转换为R中另一个数字的第一个整除数

  9. 9

    如何找到一个包含特定字符串和最大数字的对象?

  10. 10

    当第一个数字表示最后一个索引时如何找到数组中的最大差异

  11. 11

    排序时读取两个数字而不是第一个整数

  12. 12

    如果第一列等于其他行,则选择该列中的最大数字

  13. 13

    如何从一系列数字中获得最小和最大数字?

  14. 14

    返回数组中的最大数字

  15. 15

    如何替换第一个数字?

  16. 16

    如何获得文件中的最大数字?

  17. 17

    如何获得文件中的最大数字?

  18. 18

    如何从用户输入中打印最大数字

  19. 19

    如何找到不在列表中的最大数字?

  20. 20

    Python从字符串中删除第一个数字(如果为0)

  21. 21

    如何从数字输入文件中找到最大数字

  22. 22

    从MathRandom生成的数字中打印最大数字

  23. 23

    如何显示数据库表的列之一的三个最大数字?

  24. 24

    如何显示数据库表的列之一的三个最大数字?

  25. 25

    AS3-如何在数组中查找两个最大数字

  26. 26

    AS3-如何在数组中查找两个最大数字

  27. 27

    如何访问我的优先队列中的 10 个最大数字

  28. 28

    如何使用sed匹配并保持第一个数字在一行中?

  29. 29

    如何在列表中的元组中检查第一个数字?

热门标签

归档