java - 如何在不使用数组的情况下从给定数字中找到第二大数字
问题描述
我有一些代码可以让你们帮我获取剩余的代码.....
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;
}
}
}
我的想法是复制提醒并将该提醒与之前的值进行比较,然后我们将得到正确的答案。我怎样才能用我的逻辑达到我的要求.......
解决方案
我稍微修改了您的代码,以便从给定数字中找到第二大数字。您需要两个 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);
推荐阅读
- java - Java Runtime.getRuntime() 和 Process Builder 无法执行带参数的 perl 脚本
- python - 为什么使用 tf.image.sample_distorted_bounding_box 的边界框和裁剪的图片不匹配?
- javascript - 什么是 !!在 Node.js 中
- c - C - 创建整数的 3D 数组并将其初始化为零
- angular - Angular 从 5 升级到 6:资产路径必须以项目源根目录开头
- c# - 选择公式不起作用水晶报告
- clojure - Clojure.spec “或”等价于“s/and”
- laravel - Container::getAlias($abstract) throws ErrorException: Illegal offset type in isset 或当 $abstract 中没有 $this->aliases[] 时为空
- asp.net - 无法打开数据库错误
- c# - 无密码登录/使用电话号码注册