一个小学三年级的算术问题:编程求运用任意四则运算法使四个(1-99)的正整数解只为1的所有算式题。(100分)

  • 主题发起人 主题发起人 ximyma
  • 开始时间 开始时间
看来还是有点问题。
我女儿说,没学过负数,1+1-48+47,不能运算,老师没教过,要前面的数比后面的大才行。
这个问题怎么办?

还有一个问题,我女儿说,老师还交代了一个题,就是要让四个数怎么运算才能得出1,比如:
四个四: 4 4 4 4 中间怎么加运算符号,最后结果等于1呢?
看来这个老师的创新能力比我们强。
 
[:)]
好有意思啊,昨天晚上想到一半,好累,睡着了。
想不到今天已经有人做出来了。厉害!
 
反正最後的結果肯定是正的。中間負而已。
把“-”的運算移到後面來就可以了。
第二個問題是不是數的位置固定呀。
 
这样不好,什么时候你能让你女儿自己写出来就好了!
程序的原理我想你应该明白了,自己把它写出来就是进步,光要代码有什么用?
 
有理。
我想法子解决先。
 
Delp的代码的确有许多可资借鉴之处,佩服。借用他的一些想法,把我的代码修改如下:(如果要求四个4的话,可以将四个循环起止值都该为4啊)
procedure TForm1.Button1Click(Sender: TObject);
var i1,i2,i3,i4,s1,s2,s3:integer;
str,ch:string;
function ResultOf(i1,i2,i3,i4,s1,s2,s3:integer):integer;
var
i:integer;
begin

case s1 of
1:i:=i1+i2;
2:if i1>i2 then
i:=i1-i2
else
begin
result:=0;exit;
end;
3:i:=i1*i2;
4:if i1 mod i2 =0 then
i:=i1 div i2
else
begin
result:=0;exit;
end;
end;

case s2 of
1:i:=i+i3;
2:if i>i3 then
i:=i-i3
else
begin
result:=0;exit;
end;
3:i:=i*i3;
4:if i mod i3 =0 then
i:=i div i3
else
begin
result:=0;exit;
end;
end;

case s3 of
1:i:=i+i4;
2:if i>i4 then
i:=i-i4
else
begin
result:=0;exit;
end;
3:i:=i*i4;
4:if i mod i4 =0 then
i:=i div i4
else
begin
result:=0;exit;
end;
end;
result:=i;
end;

begin
ch:='+-*/';
for i1:=1 to 99do
for s1:=1 to 4do
for i2:=1 to 99do
for s2:=1 to 4do
for i3:=1 to 99do
for s3:=1 to 4do
for i4:=1 to 99do
begin
str:=inttostr(i1)+ch[s1]+inttostr(i2)+ch[s2]+inttostr(i3)+ch[s3]+inttostr(i4)+'=1';
edit1.Text :=str;
edit1.Update ;
if ResultOf(i1,i2,i3,i4,s1,s2,s3)=1 then
memo1.lines.add(str);
end;
end;
 
loxtln先生的程序还没有解决浮点数的问题,计算优先级的问题也没有解决。
我调试的时候还出现了一个initialization的问题。
 
to ximyma , 今天起来看了一下分,没有增加,郁闷,又看了一下帖子,哇,发现这分停累人的,好久没得分了.......
关于你的问题的答复如下:
看来还是有点问题。
我女儿说,没学过负数,1+1-48+47,不能运算,老师没教过,要前面的数比后面的大才行。
这个问题怎么办?
// 这个问题小改一下就可以了,判断优先级别那个地方,先判断一下 第一个结果
//是否负数,然后第二个....,以此类推......,是就放弃
还有一个问题,我女儿说,老师还交代了一个题,就是要让四个数怎么运算才能得出1,比如:
四个四: 4 4 4 4 中间怎么加运算符号,最后结果等于1呢?
看来这个老师的创新能力比我们强。
//这个问题不用程序,用脑袋就能算,这不是用来锻炼你女儿的吗,你得教育方法有问题
//哟..... 随便想就是一堆... 4-4+4/4 4+4/4-4 4/4+4-4 4*4/4/4 ,叫你女儿认真想一
//下吧,老师可是费了不少精神才想出得命题呀......
 
TO DELP:
别急我会给你很多分的。
你还可以做干爸爸的。
 
多人接受答案了。
 
今天看了《实用算法和程序设计》,才知道这个问题叫N皇后问题,扩展的问题还有好几个。看来学计算机一定要学好数学啊。
 
后退
顶部