已知K,j,n的值,求解x的值?
k:=(x mod j)+((x div j) mod j)*100+((x div n) mod j)*10000

解决方案 »

  1.   

    已知K,j,n的值,求解x的值?
    k:=(x mod j)+((x div j) mod j)*100+((x div n) mod j)*10000function GetX(k,j,n: integer): integer;
    var
     mod1,mod2,mod3: integer;
    begin
     result:=0;
     if (j=0) or n=0 then exit;
     for mod1:=0 to 9 do begin
       for mod2:=0 to 9 do begin
         for mod3:=0 to 9 do begin
            if (k=(mod1+mode2*100+mod3*10000)) then begin
              ......... 等待完善中
              
            end;
                     end; //mod3
       end; //mod2
     end; //mode1
    end;
      

  2.   

    ourlin(学编程的会计师):多谢参与,请及早完善.
      

  3.   

    function GetX(k,j,n: integer): integer;
    var
     mod1,mod2,mod3: integer;
    begin
     result:=0;
     if (j=0) or n=0 then exit;
     for mod1:=0 to 5 do begin
       for mod2:=0 to 5 do begin
         for mod3:=0 to 5 do begin
            if (k=(mod1+mod2*100+mod3*10000)) then begin
              ......... 比较难, 等待中...
              
            end;
                     end; //mod3
       end; //mod2
     end; //mode1
    end;
      

  4.   

    x有可能无解或者多个解。
    如果要用循环的话倒不如用 for x:=0 to MaxInt do 把解都枚举出来。 ^_^
      

  5.   

    已知K,j,n的值,求解x的值?
    k:=(x mod j)+((x div j) mod j)*100+((x div n) mod j)*10000终于搞定:function GetX(k,j,n: integer): integer;
    var
     mod1,mod2,mod3, G1: integer;
    begin
     result:=0;
     if (j=0) or (n=0) then exit;
     for mod1:=0 to 5 do begin
       for mod2:=0 to 5 do begin
         for mod3:=0 to 5 do begin
            if (k=(mod1+mod2*100+mod3*10000)) then begin
               for G1:=1 to 9 do begin
                 Result:=G1*j+mod1; 
                 if ((Result mod j)+((Result div j) mod j)*100+((Result div n) mod j)*10000)=k then exit;
               end; //for G1
            end;         
         end; //mod3
       end; //mod2
     end; //mode1
    end;
      

  6.   

    最新版本:如果X的值有一定范围的话, 此函数基本可以满足:
    例如: X的值是一个三位数, 则相应改变循环长度:
    function GetX(k,j,n: integer): integer;
    var
     mod1,mod2,mod3, G1: integer;
    begin
     result:=0;
     if (j=0) or (n=0) then exit;
     for mod1:=0 to 5 do begin
       for mod2:=0 to 5 do begin
         for mod3:=0 to 5 do begin
            if (k=(mod1+mod2*100+mod3*10000)) then begin
               for G1:=1 to 999 do begin
                 Result:=G1*j+mod1; 
                 if ((Result mod j)=mod1) and (((Result div j) mod j)=mod2) and (((Result div n) mod j)=mod3) then exit;
               end; //for G1
            end;         
         end; //mod3
       end; //mod2
     end; //mode1
    end;
      

  7.   

    谢谢,ourlin(学编程的会计师)。先结贴给分,我再试试。