当前位置:编程学习 > Delphi >>

帮我解决个Delphi编程问题

甲、乙、丙三人共有24元钱,先由甲分钱给乙、丙两人,所分给的数与各人已有数相同;接着由乙分给甲、丙,分法同前;再由丙分钱给甲、乙,分法亦同前。经上述三次分钱之后,每个人的钱数恰好一样多。 求原先各人的钱数分别是多少? 用编程解决。。。最后每人是8元,只要用三人的8元依次除以2给第三个就能解决,只是不知道怎么编程
答案:program compM;

{$APPTYPE CONSOLE}

function CheckNumber( a, b, c, z : Integer ) : Boolean;
begin
  { 分甲给乙丙 }
  a := a - b - c;
  b := b + b;
  c := c + c;
  { 分乙给甲丙 }
  b := b - a -c;
  a := a + a;
  c := c + c;
  { 分丙给甲乙 }
  c := c - a - b;
  a := a + a;
  b := b + b;
  // 成功判定:三者相同
  Result := ( a = z ) and ( b = z ) and ( c = z );
end;

var
  i, j, k : Integer;

begin
  for i := 0 to 24 do
    for j := 0 to 24 do
      for k := 0 to 24 do
        if CheckNumber( i, j, k, 8 ) then
          Writeln( i, #$09, j, #$09, k );
end.
其他:为啥非要用Delphi? procedure TForm1.Button1Click(Sender: TObject);
var
  i,j,k:integer;//设甲、乙、丙初始值为i,j,k
  a,b,c:integer;
begin
  for i:=1 to 24 do
    for j:=1 to 24 do
      for k:=1 to 24 do
      begin
        //甲开始分
        a:=i-j-k;//甲分甲剩余
        b:=j+j;//甲分乙剩余
        c:=k+k;//甲分丙剩余
     //乙开始分
        b:=b-a-c;//乙分乙剩余
        a:=a+a;//乙分甲剩余
        c:=c+c;//乙分丙剩余
     //丙开始分
        c:=c-a-b;//丙分丙剩余
        a:=a+a;//丙分甲剩余
        b:=b+b;//丙分乙剩余
        if (a=8)and(b=8)and(c=8) then//最后三者相等
           memo1.Lines.Add('甲:'+inttostr(i)+'  乙:'+inttostr(j)+'  丙:'+inttostr(k));
      end;
end;
//输出结果是甲:13  乙:7  丙:4 

上一个:求一个好用的Delphi破解版本的下载地址 (C++语言)功能要好点的,适合新手的
下一个:delphi的printdialog怎样打印memo的内容

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,