黑马程序员技术交流社区
标题:
逻辑算法题,数学逻辑强的来,够胆你就来,等你来约!...
[打印本页]
作者:
ciying88
时间:
2017-3-11 01:22
标题:
逻辑算法题,数学逻辑强的来,够胆你就来,等你来约!...
现在有这么个需求:我需要这么一个方法,我会往这个方法里头传入四个 int 类型的参数,
即: int a, int b, int c, int d
例如:我传进来的四个int 数是:1, 4,4, 3 现在需要将传入的这四个整型的参数进行 加减乘除 法则运算!
但是现如今的问题是:你不能确定第一个数与第二个数用的是什么运算符连接,同理,第二个数与第三个数也不能确定用什么运算符号连接,第三个数与第四个数也是一样的道理!即:数与数之间连接起来的运算符(+、—、x、÷) 不能确定是用什么运算符连接起来,这就意味着我们在程序当中需要去进行一一罗列!再者,有可能这四个数连接起来用的全部是加法,也有可能全部是减法,有可能只用了其中两种,也有可能只用了运算符的其中三种,也可能四种全部用上了!
最后将运算得到的结果进行筛选,结果大于16的,全部过滤掉,pass掉,只留下小于等于16的结果,0 也可以过滤掉了,没有意义,并将结果进行从小到大排序打印出来!(当然,重复的结果留下其中一个就够了)!
作者:
aweilovemusic
时间:
2017-3-11 06:35
这个有意思,
作者:
aweilovemusic
时间:
2017-3-11 06:47
总共有64种不同的运算,假如那四个数字固定的话,可以做出来
作者:
Mr_Maty
时间:
2017-3-11 12:24
说了半天炫炫呼呼的不就是个计算器吗。。。。。。可以通红switch语句来选择需要进行的运算规则
作者:
Mr_Maty
时间:
2017-3-11 12:25
具体后面的筛选,结果都出来了随你怎么处理
作者:
DCS
时间:
2017-3-11 13:17
不多说,我先看看,
作者:
xiaoxiaoyuxie
时间:
2017-3-11 14:35
帖代码
static String[] symbolArr = new String[]{"+","-","*","/"};
static int sumNumber =0;
static int[] valueNumbers =new int[]{1,2,3,4};
public static void main(String[] args) {
for (int i = 0; i < symbolArr.length ; i++) {
for (int j = 0; j < symbolArr.length ; j++) {
for (int k = 0; k < symbolArr.length; k++) {
sumNumber=getValue(valueNumbers,new String[]{symbolArr[i], symbolArr[j], symbolArr[k]});
if (sumNumber<=16){
System.out.print(sumNumber);
}
}
}
}
}
static int getValue(int[] values, String[] args){
for (int i = 0; i < args.length; i++) {
switch (args[i]){
case "+":
switch (i){
case 0:
sumNumber =values[0]+values[1];
break;
case 1:
sumNumber = sumNumber+values[2];
break;
case 2:
sumNumber = sumNumber+values[3];
break;
}
break;
case "-":
switch (i){
case 0:
sumNumber =values[0]-values[1];
break;
case 1:
sumNumber = sumNumber-values[2];
break;
case 2:
sumNumber = sumNumber-values[3];
break;
}
break;
case "*":
switch (i){
case 0:
sumNumber =values[0]*values[1];
break;
case 1:
sumNumber = sumNumber*values[2];
break;
case 2:
sumNumber = sumNumber*values[3];
break;
}
break;
case "/":
switch (i){
case 0:
sumNumber =values[0]/values[1];
break;
case 1:
sumNumber = sumNumber/values[2];
break;
case 2:
sumNumber = sumNumber/values[3];
break;
}
break;
}
}
return sumNumber;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2