您的位置:首页 > 编程语言

写程序来解决一道小学数学题

2016-07-31 21:38 453 查看
默默学习编程一年,因故遇到一道小学数学题。心想:“然也,编程用武之地也!”于是博主便打开电脑狂撸一番,遂解决。拿来与同志们一乐。

题目描述如下:

如图,有带加减乘符号的十六个数,选出其中五个,进行运算,最后结果是一。选出五个后,,会先进行乘法,再进行加减。。。选出的第一个不是乘



代码如下:

static char[] operator=new char[16];//储存运算符

static int[] number=new int[16];//储存数字

static int[] selected=new int[5];//储存被选出来的数的下标

public static void main(String[] args)
{

for(int i=0;i<=15;i++)
{
if(operator[i]!='*')//保证第一个字符不是乘,题目要求
{
for(int j=0;j<=15;j++)
for(int k=0;k<=15;k++)
for(int l=0;l<=15;l++)
for(int m=0;m<=15;m++)
{

selected[0]=i;//储存选出来的五个下标,用此下标即可在数据数组找到对应的数据
selected[1]=j;
selected[2]=k;
selected[3]=l;
selected[4]=m;
initialize();
int end=judge(selected);
boolean repetition=false;
if(end==1)
{
repetition=true;
//剔除选择了两个同样数的情况
for(int qq=1;qq<5;qq++)
{
for(int ww=qq;ww>=0;ww--)
if(selected[ww]==selected[qq])
repetition=false;
}
for(int qq=0;qq<5;qq++)
{
System.out.print(selected[qq]+1+" ");
}
System.out.println();
}

}
}

}

}
//将数组初始化,即将数据储存进数组
static public void initialize()
{
operator[0]='+';
operator[5]='+';
operator[6]='+';
operator[11]='+';
operator[15]='+';
operator[1]='-';
operator[2]='-';
operator[8]='-';
operator[13]='-';
operator[14]='-';
operator[3]='*';
operator[4]='*';
operator[7]='*';
operator[9]='*';
operator[10]='*';
operator[12]='*';
number[0]=190;
number[1]=87;
number[2]=94;
number[3]=7;
number[4]=12;
number[5]=29;
number[6]=65;
number[7]=8;
number[8]=999;
number[9]=9;
number[10]=22;
number[11]=19;
number[12]=4;
number[13]=576;
number[14]=425;
number[15]=117;

}


//此方法用来计算选出来的五个数的计算结果并返回这个结果

static public int judge(int[]a)
{
//首先我们将所有的“*”消除
for(int i=1;i<5;i++)
{
if(operator[a[i]]=='*')
{
int j=i+1;
if(j<5)
{
while(operator[a[j]]=='*')
{
j++;
if(j>=5)
break;
}
}
j--;
for(int k=i;k<=j;k++)
{
number[a[i-1]]=number[a[i-1]]*number[a[k]];
number[a[k]]=0;
operator[a[k]]='+';
}

}
}
int end=0;
//对只含有加减运算的数进行计算
for(int i=0;i<5;i++)
{
if(operator[a[i]]=='+')
end+=number[a[i]];
if(operator[a[i]]=='-')
end-=number[a[i]];
}
return end;
}
`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数学 编程