永发信息网

一道Java编程题!

答案:4  悬赏:40  手机版
解决时间 2021-07-25 23:51
  • 提问者网友:山高云阔
  • 2021-07-25 07:49

使用5.6.7.8.9
组成一个三位数和一个两位数,并从这样的数中找到两数乘积最大的这个数


要求:
这五个数组成一个各位都不相同的三位数,和一个各位也不相同的两位数,
并且两位数中的任何一位不能和前面的三位数任何一位都相同

最佳答案
  • 五星知识达人网友:走死在岁月里
  • 2021-07-25 07:56


public class Caculate {

public static void main(String[] args) {
int[] array=new int[5];
array[0]=5;
array[1]=6;
array[2]=7;
array[3]=8;
array[4]=9;

int max=0;
int a,b,c,d,e;
a=0;
b=0;
c=0;
d=0;
e=0;

for(int i=0;i<array.length;i++){
for(int j=0;j<array.length;j++){
for(int k=0;k<array.length;k++){
for(int z=0;z<array.length;z++){
for(int x=0;x<array.length;x++){
boolean condition=(i!=j&&i!=k&&i!=z&&i!=x&&j!=k&&j!=z&&j!=x&&k!=z&&k!=x&&z!=x);
if(condition){
int temp=(array[i]*100+array[j]*10+array[k])*(array[z]*10+array[x]);
if(temp>max){
max=temp;
a=array[i];
b=array[j];
c=array[k];
d=array[z];
e=array[x];

}
}
}
}
}
}
}

System.out.println("The max number is "+a+b+c+"*"+d+e+" = "+max);

}
}
全部回答
  • 1楼网友:醉吻情书
  • 2021-07-25 09:09

public class Calculator { private int biggest; private int num1; private int num2;

public static void main(String[] args) { int[] num = { 5, 6, 7, 8, 9 }; Calculator cal = new Calculator(); cal.getBig(num, 0, 4); System.out.println(cal.num1 + "*" + cal.num2 + "=" + cal.biggest); }

private void getBig(int[] num, int low, int high) { if (low == high) { int firstNum = num[0] * 100 + num[1] * 10 + num[2]; int secondNum = num[3] * 10 + num[4]; if (firstNum * secondNum > biggest) { num1 = firstNum; num2 = secondNum; biggest = firstNum * secondNum; } } else { for (int i = low; i <= high; i++) { int tem = num[i]; num[i] = num[low]; num[low] = tem; getBig(num, low + 1, high); tem = num[i]; num[i] = num[low]; num[low] = tem; }

} } }

运行结果:

875*96=84000

  • 2楼网友:不如潦草
  • 2021-07-25 09:02

我觉得楼上的太慢了,只要把5个数组合下,2个数组保存,一个是3个的组合,一个是2个的组合,然后排序找到2个数组中的2个最大数.

  • 3楼网友:拜訪者
  • 2021-07-25 08:33

把这五个数放到数组里或集合里,使用循环找到他们所有的组合并转化成整数,并计算他们的乘积,找到最大的即可

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯