【问题标题】:how can i find the 2nd largest number from given number without using arrays如何在不使用数组的情况下从给定数字中找到第二大数字
【发布时间】:2019-05-02 18:07:59
【问题描述】:

我有一些代码要获取,你们能帮我获取剩余的代码吗.....

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;
    }
}

}

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

【问题讨论】:

  • if(copy==copy-1) {永远不会是真的
  • 您的问题不清楚。是否要从“6789123”中选择最大的数字。答案是 9 吗?
  • 那我该怎么办。请给我建议。
  • 有两种方法 1) 排序 nos 2) 使用 2 个变量。
  • 如何添加代码sn-p

标签: java arrays types numbers


【解决方案1】:

我稍微修改了您的代码,以便从给定数字中找到第二大数字。您需要两个 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);

【讨论】:

  • 如果有帮助请告诉我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-22
  • 1970-01-01
  • 2020-05-27
相关资源
最近更新 更多