算24点编程题,请用pascal
题目描述给出4个1到1000之间的整数,用这4个整数,通过+、–、*的运算而得到24,运算规则如下:1.每个数必须使用一次,只能使用一次2.运算符无优先级之分,自左向右计...
题目描述
给出4个1到1000之间的整数,用这4个整数,通过+、–、*的运算而得到24,运算规则如下: 1.每个数必须使用一次,只能使用一次 2.运算符无优先级之分,自左向右计算。
例如:输入4个数为2 9 3 1
则计算方法为2+1*9-3=24
例如:输入:1 1 2 2 输入:4 4 4 4
输出:error 输出:4*4+4+4=24
输入
4个1到1000之间的整数
输出
若4个数不能产生出24,则输出error;若能产生,则输出产生式(若有多个,仅能输出一个)。
样例输入
示例1:
5 7 4 9
示例2:
9 13 7 2
示例3:
5 1 3 5
示例4:
8 9 5 2
样例输出
示例1:
7-4*5+9=24
示例2:
9-7*13-2=24
示例3:
error
示例4:
8+9+5+2=24
提示
来源
2001江苏省青少年信息学奥林匹克小学组竞赛复赛 展开
给出4个1到1000之间的整数,用这4个整数,通过+、–、*的运算而得到24,运算规则如下: 1.每个数必须使用一次,只能使用一次 2.运算符无优先级之分,自左向右计算。
例如:输入4个数为2 9 3 1
则计算方法为2+1*9-3=24
例如:输入:1 1 2 2 输入:4 4 4 4
输出:error 输出:4*4+4+4=24
输入
4个1到1000之间的整数
输出
若4个数不能产生出24,则输出error;若能产生,则输出产生式(若有多个,仅能输出一个)。
样例输入
示例1:
5 7 4 9
示例2:
9 13 7 2
示例3:
5 1 3 5
示例4:
8 9 5 2
样例输出
示例1:
7-4*5+9=24
示例2:
9-7*13-2=24
示例3:
error
示例4:
8+9+5+2=24
提示
来源
2001江苏省青少年信息学奥林匹克小学组竞赛复赛 展开
1个回答
展开全部
下面是N年前用JS写的,那时刚学编辑,方法很笨,连命名都不规范,后面写了一个很简洁的,但代码找不见了,和pascal语法不一样,你可以参考一下编辑思路,然后改写一下
function fun1(e1,e2,e3,e4)
{
var i,j,k,a,b,c,d,t1,t2,t3;
var opx=["+","-","*","/","-","/"];
a=e1;b=e2;c=e3;d=e4;
for(i=0;;)
{
if(i>=4)break;
if(i==0)t1=a+b;
if(i==1)if(a-b>0)t1=a-b;
if(i==2)t1=a*b;
if(i==3)if(b!=0)t1=a/b;
for(j=0;;)
{
if(j>5)break;
if(j==0)t2=t1+c;
if(j==1)t2=t1-c;
if(j==2)t2=t1*c;
if(j==3)if(c!=0)t2=t1/c;
if(j==4)t2=c-t1;
if(j==5)if(t1!=0)t2=c/t1;
for(k=0;;k++)
{
if(k>5)break;
if(k==0)t3=t2+d;
if(k==1)t3=t2-d;
if(k==2)t3=t2*d;
if(k==3)if(d!=0)t3=t2/d;
if(k==4)t3=d-t2;
if(k==5)if(t2!=0)t3=d/t2;
if(t3==24)
{var str="";
var t="";
if((j>1||k>1)&&i<2)t="(";
if((j<2||j==4)&&k>1&&i>1)t="(";
str=str+a+opx[i]+b;
if(j>1&&i<2)str=str+")";
if(j<4)str=str+opx[j]+c;
else if(j>3&&i<2)str=c+opx[j]+"("+str+")";
else if(j==5&&i==3)str=c+opx[j]+"("+str+")";
else str=c+opx[j]+str;
if(j<2&&k>1&&i<2)str=str+")";
str=t+str;
if((j<2||j==4)&&k>1&&i>1)str=str+")";
if(k<4)str=str+opx[k]+d+"=24";
else str=d+opx[k]+str+"=24";
pubAnser=str;
return 1;
}
}
j=j+1;
}
i=i+1;
}
}
function fun3(e1,e2,e3,e4)
{
var i,j,k,a,b,c,d,t1,t2,t3;
var opx=["+","-","*","/"];
a=e1;b=e2;c=e3;d=e4;
for(i=0;;)
{
if(i>=4)break;
if(i==0)t1=a+b;
if(i==1)t1=a-b;
if(i==2)t1=a*b;
if(i==3)if(b!=0)t1=a/b;
for(j=0;;)
{
if(j>3)break;
if(j==0)t2=c+d;
if(j==1)t2=c-d;
if(j==2)t2=c*d;
if(j==3)if(d!=0)t2=c/d;
for(k=0;;k++)
{
if(k>3)break;
if(k==0)t3=t1+t2;
if(k==1)t3=t1-t2;
if(k==2)t3=t1*t2;
if(k==3)if(d!=0)t3=t1/t2;
if(t3==24)
{var str='';
if(k>1&&i<2)str="(";
str=str+a+opx[i]+b;
if(k>1&&i<2)str=str+")";
str=str+opx[k];
if(k>0&&j<2)str=str+"(";
str=str+c+opx[j]+d;
if(k>0&&j<2)str=str+")";
str=str+"=24";
pubAnser=str;
return 1;
}
}
j=j+1;
}
i=i+1;
}
}
function fun2(a,b,c,d)
{
var i,j,k,str,flg;
var arr=[a,b,c,d];
for(i=0;;)
{
if(i>3)break;
for(j=0;;)
{
if(j>3)break;
if(j==i){j=j+1;continue;}
for(k=0;;)
{
if(k>3)break;
if(k==i||k==j){k=k+1;continue;}
for(l=0;;)
{
if(l>3)break;
if(l==i||l==j||l==k){l=l+1;continue;}
if(arr[i]==3&&arr[j]==3&&arr[k]==8&&arr[l]==8)
{
pubAnser="8/(3-8/3)=24";
return true;}
flg=fun1(arr[i],arr[j],arr[k],arr[l]);
if(flg==1)return true;
flg=fun3(arr[i],arr[j],arr[k],arr[l]);
if(flg==1)return true;
l=l+1;
}
k+=1;
}
j=j+1;
}
i=i+1;
}
pubAnser="此题无解!";
return false;
}
function fun1(e1,e2,e3,e4)
{
var i,j,k,a,b,c,d,t1,t2,t3;
var opx=["+","-","*","/","-","/"];
a=e1;b=e2;c=e3;d=e4;
for(i=0;;)
{
if(i>=4)break;
if(i==0)t1=a+b;
if(i==1)if(a-b>0)t1=a-b;
if(i==2)t1=a*b;
if(i==3)if(b!=0)t1=a/b;
for(j=0;;)
{
if(j>5)break;
if(j==0)t2=t1+c;
if(j==1)t2=t1-c;
if(j==2)t2=t1*c;
if(j==3)if(c!=0)t2=t1/c;
if(j==4)t2=c-t1;
if(j==5)if(t1!=0)t2=c/t1;
for(k=0;;k++)
{
if(k>5)break;
if(k==0)t3=t2+d;
if(k==1)t3=t2-d;
if(k==2)t3=t2*d;
if(k==3)if(d!=0)t3=t2/d;
if(k==4)t3=d-t2;
if(k==5)if(t2!=0)t3=d/t2;
if(t3==24)
{var str="";
var t="";
if((j>1||k>1)&&i<2)t="(";
if((j<2||j==4)&&k>1&&i>1)t="(";
str=str+a+opx[i]+b;
if(j>1&&i<2)str=str+")";
if(j<4)str=str+opx[j]+c;
else if(j>3&&i<2)str=c+opx[j]+"("+str+")";
else if(j==5&&i==3)str=c+opx[j]+"("+str+")";
else str=c+opx[j]+str;
if(j<2&&k>1&&i<2)str=str+")";
str=t+str;
if((j<2||j==4)&&k>1&&i>1)str=str+")";
if(k<4)str=str+opx[k]+d+"=24";
else str=d+opx[k]+str+"=24";
pubAnser=str;
return 1;
}
}
j=j+1;
}
i=i+1;
}
}
function fun3(e1,e2,e3,e4)
{
var i,j,k,a,b,c,d,t1,t2,t3;
var opx=["+","-","*","/"];
a=e1;b=e2;c=e3;d=e4;
for(i=0;;)
{
if(i>=4)break;
if(i==0)t1=a+b;
if(i==1)t1=a-b;
if(i==2)t1=a*b;
if(i==3)if(b!=0)t1=a/b;
for(j=0;;)
{
if(j>3)break;
if(j==0)t2=c+d;
if(j==1)t2=c-d;
if(j==2)t2=c*d;
if(j==3)if(d!=0)t2=c/d;
for(k=0;;k++)
{
if(k>3)break;
if(k==0)t3=t1+t2;
if(k==1)t3=t1-t2;
if(k==2)t3=t1*t2;
if(k==3)if(d!=0)t3=t1/t2;
if(t3==24)
{var str='';
if(k>1&&i<2)str="(";
str=str+a+opx[i]+b;
if(k>1&&i<2)str=str+")";
str=str+opx[k];
if(k>0&&j<2)str=str+"(";
str=str+c+opx[j]+d;
if(k>0&&j<2)str=str+")";
str=str+"=24";
pubAnser=str;
return 1;
}
}
j=j+1;
}
i=i+1;
}
}
function fun2(a,b,c,d)
{
var i,j,k,str,flg;
var arr=[a,b,c,d];
for(i=0;;)
{
if(i>3)break;
for(j=0;;)
{
if(j>3)break;
if(j==i){j=j+1;continue;}
for(k=0;;)
{
if(k>3)break;
if(k==i||k==j){k=k+1;continue;}
for(l=0;;)
{
if(l>3)break;
if(l==i||l==j||l==k){l=l+1;continue;}
if(arr[i]==3&&arr[j]==3&&arr[k]==8&&arr[l]==8)
{
pubAnser="8/(3-8/3)=24";
return true;}
flg=fun1(arr[i],arr[j],arr[k],arr[l]);
if(flg==1)return true;
flg=fun3(arr[i],arr[j],arr[k],arr[l]);
if(flg==1)return true;
l=l+1;
}
k+=1;
}
j=j+1;
}
i=i+1;
}
pubAnser="此题无解!";
return false;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询