首页 > 解决方案 > 如何在不使用数组的情况下从给定数字中找到第二大数字

问题描述

我有一些代码可以让你们帮我获取剩余的代码.....

public class SumOfGivenInt {

public static void main(String[] args) {
    int num=6789123,lastvalue=0;
    while(num>0){

        int reminder=num%10;
        int copy=reminder;

// I think here some code need to write........

        System.out.println(reminder);
         lastvalue=lastvalue*10+reminder;
         num/=10;
    }
}

}

我的想法是复制提醒并将该提醒与之前的值进行比较,然后我们将得到正确的答案。我怎样才能用我的逻辑达到我的要求.......

标签: javaarraystypesnumbers

解决方案


我稍微修改了您的代码,以便从给定数字中找到第二大数字。您需要两个 while 循环来执行此操作。第一个while循环是获取最大的数字,第二个while循环是获取下一个最大的数字。希望你能理解如何做到这一点的逻辑。

    int num=6789123,lastvalue=0;
    int largest = 0;
    int secondLargest = 0;
    while(num>0){

        int reminder=num%10;
        if(reminder > largest)          //get the largest number
        {
            largest = reminder;
        }

        System.out.println(reminder);
         lastvalue=lastvalue*10+reminder;
         num/=10;
    }

    num=6789123;
    while(num>0){
        int reminder=num%10;
        if(reminder > secondLargest)    //get the second largest number
        {
            if(reminder != largest)
            {
                secondLargest = reminder;
            }
        }
         lastvalue=lastvalue*10+reminder;
         num/=10;
    }


    System.out.println(largest);
    System.out.println(secondLargest);

推荐阅读