问题描述:
pascal算24!
给出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
procedure find(dep:longint);
var i:longint;
begin
if dep>4
then calcu
else for i:=1 to 4 do
if f[i]
then begin k[dep]:=a[i]; f[i]:=false; find(dep+1); f[i]:=true; end;
end;
begin
read(a[1],a[2],a[3],a[4]);
fillchar(f,sizeof(f),true);
find(1);
writeln('error');
end.
这是代码的后半部分,前半部分见下图
给出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
procedure find(dep:longint);
var i:longint;
begin
if dep>4
then calcu
else for i:=1 to 4 do
if f[i]
then begin k[dep]:=a[i]; f[i]:=false; find(dep+1); f[i]:=true; end;
end;
begin
read(a[1],a[2],a[3],a[4]);
fillchar(f,sizeof(f),true);
find(1);
writeln('error');
end.
这是代码的后半部分,前半部分见下图
问题解答:
我来补答展开全文阅读