for i := 510 downto 0 do
    begin
      j := 1;
      BinStr := IntToBin(i);
      cha := Copy(BinStr,8, 1);
      if cha = '0' then begin
        X[j]  := 1;
        j := j + 1
      end;
      cha := Copy(BinStr,9,1);
      if cha = '0' then begin
        X[j]   := 2;
        j := j + 1
      end;
      cha := Copy(BinStr,10,1);
      if cha = '0' then begin
        X[j]   := 3;
        j := j + 1
      end;
      cha := Copy(BinStr,11,1);
      if cha = '0' then begin
        X[j]   := 4;
        j := j + 1
      end;
      cha := Copy(BinStr,12,1);
      if cha = '0' then begin
        X[j]   := 5;
        j := j + 1
      end;
      cha := Copy(BinStr,13,1);
      if cha = '0' then begin
        X[j]   := 6;
        j := j + 1
      end;
      cha := Copy(BinStr,14,1);
      if cha = '0' then begin
        X[j]   := 7;
        j := j + 1
      end;
      cha := Copy(BinStr,15,1);
      if cha = '0' then begin
        X[j]   := 8;
        j := j + 1
      end;
      cha := Copy(BinStr,16,1);
      if cha = '0' then begin
        X[j]   := 9;
      end;
      m1 := 1;
      m2 := 1;
      m3 := 1;
      m4 := 1;
      m5 := 1;
      m6 := 1;
      m7 := 1;
      m8 := 1;
      m9 := 1;  //初始化
      k := j;
      while ( k <> 0 ) do
        begin
          iCase := X[k];
          Case iCase of
            1 : m1 :=0;
            2 : m2 :=0;
            3 : m3 :=0;
            4 : m4 :=0;
            5 : m5 :=0;
            6 : m6 :=0;
            7 : m7 :=0;
            8 : m8 :=0;
            9 : m9 :=0;
          end;
          k := k - 1;
        end;
        for i1 := 1 to 2 do
        for i2 := 1 to 3 do
        for i3 := 1 to 62 do
        for i4 := 1 to 10 do
        for i5 := 1 to 2 do
        for i6 := 1 to 2 do
        for i7 := 1 to 2 do
        for i8 := 1 to 3 do
        for i9 := 1 to 3 do
      begin
        if m1 <> 0 then
          m1 := i1;
        if m2 <> 0 then
          m2 := i2;
        if m3 <> 0 then
          m3 := i3;
        if m4 <> 0 then
          m4 := i4;
        if m5 <> 0 then
          m5 := i5;
        if m6 <> 0 then
          m6 := i6;
        if m7 <> 0 then
          m7 := i7;
        if m8 <> 0 then
          m8 := i8;
        if m9 <> 0 then
          m9 := i9;
        Pnum[m1,m2,m3,m4,m5,m6,m7,m8,m9] :=  Pnum[m1,m2,m3,m4,m5,m6,m7,m8,m9] + 
                                             Pnum [i1,i2,i3,i4,i5,i6,i7,i8,i9];
        Nnum[m1,m2,m3,m4,m5,m6,m7,m8,m9] :=  Nnum[m1,m2,m3,m4,m5,m6,m7,m8,m9] + 
                                             Nnum[i1,i2,i3,i4,i5,i6,i7,i8,i9];
    end;
  end;