求解算法!(50分)

  • 主题发起人 主题发起人 7030
  • 开始时间 开始时间
7

7030

Unregistered / Unconfirmed
GUEST, unregistred user!
求一个最小自然数x,使x=a3+b3=c3+d3(a3表示a的3次方,b3,c3,d3类似),a,b,c,d为自然数,
a<>c,b<>d.
 
procedure TForm1.SpeedButton1Click(Sender: TObject);
var a,b,c,d ,s1,s2:integer;
begin
for a := 1 to 100 do
for b := 1 to 100 do
for c := 1 to 100 do
for d := 1 to 100 do
begin
s1 := a*a*a + b*b*b;
s2 := c*c*c + d*d*d;
if s1 =s2 then
if (a<>b) and (a<>d) and (a<>c) then
begin
showmessage( 'a:'+inttostr(a)+' b:'+inttostr(b)+#13
+'c:'+inttostr(c)+' d:'+inttostr(d)+#13
+'s:'+inttostr(s1));
application.Terminate
end;
end;
end;

1^3 +12^3 = 9^3 + 10^3 =1729

 
求一个最小自然数x,使x=a3+b3=c3+d3(a3表示a的3次方,b3,c3,d3类似),a,b,c,d为自然数,
a<>c,b<>d.
不要用穷举搜索法,用贪婪法吧
算法说明:
数组a
1 2 3 4 ....
可以推出
数组b
1 8 27 64 ....
然后对数组b
进行匹配 b + b[j] = b [o] + b[l]
然努 i j o l 就是解。

 
多人接受答案了。
 
后退
顶部