嘿我正在研究一种方法,该方法从两个传递的整数中的几十,几百和几千个位置中选取最小的数字,然后返回由每个位置的最小值组成的int。例如,如果int a = 4321并且int b = 1957,那么该方法将返回1321.这是我的代码到目前为止,我认为我得到了所有内容,但我无法找到如何正确地将新值作为整数返回。
public static int biggestLoser(int a, int b){
int first;
int second;
int third;
int fourth;
if(a>9999 || a<1000 || b>9999 || b<1000){
if(a>b)
return b;
else
return a;
}
else{
if(a%10 < b%10)
first=a%10;
else
first=b%10;
if(a/1000<b/1000)
fourth=a/1000;
else
fourth=b/1000;
if(a/100%10<b/100%10)
second=a/100%10;
else
second=b/100%10;
if(a/10%10<b/10%10)
third=a/10%10;
else
third=b/10%10;
//int total=fourth,third,second,first;?????
//return total;
}
}
答案 0 :(得分:2)
首先,您的代码有一个小错误。您必须更换second
和third
的代码。
if(a/100%10<b/100%10)
third=a/100%10;
else
third=b/100%10;
if(a/10%10<b/10%10)
second=a/10%10;
else
second=b/10%10;
修好之后,只需说:
int total = first + 10 * second + 100 * third + 1000 * fourth;
return total;
就是这样。
答案 1 :(得分:0)
您可以先形成字符串,然后执行Integer.parseInt()
或像int total = (first*1)+(second*10)+(third*100)+(fourth*1000);
那样进行数学运算。
答案 2 :(得分:0)
最好实现这样的事情:
int returnValue = 0;
for(int digit = 0; digit < 4; digit++) {
int aDigit = (a / Math.pow(10, digit)) % 10; // Gets the digit
int bDigit = (b / Math.pow(10, digit)) % 10;
int max = (a > b)? a : b; // Calculates de maximum digit
returnValue += max * Math.pow(10, digit); //Adds the new digit to the return value
}
return returnValue;
答案 3 :(得分:0)
int i=1000,z=0;
do{
int x = a/i;
a=a%i;
int y = b/i;
b=b%i;
if(x<y)
z+=x*i;
else z+=y*i;
i=i/10;
}while(i>0);
return z;
//this is just logic, works for 4 digit numbers
答案 4 :(得分:0)
只是将值作为int数组返回。我已经重构了你的方法来做到这一点
public static int[] biggestLoser(int a, int b){
int first;
int second;
int third;
int fourth;
int [] values;
if(a>9999 || a<1000 || b>9999 || b<1000){
if(a>b)
return b;
else
return a;
}
values = new int[4];
else{
if(a%10 < b%10)
first=a%10;
else
first=b%10;
if(a/1000<b/1000)
fourth=a/1000;
else
fourth=b/1000;
if(a/100%10<b/100%10)
second=a/100%10;
else
second=b/100%10;
if(a/10%10<b/10%10)
third=a/10%10;
else
third=b/10%10;
//int total=fourth,third,second,first;?????
values[0] = first;
values[1] = second;
values[2] = third;
values[3] = fourth;
return value;
}
}
在main方法中,您现在可以通过for循环获取数组的每个元素
for(int x : values){
System.out.print(x);
}