Procedure TForm1.Button1Click(Sender: TObject); var i1,i2,i3 : Integer; kk : Integer; Chislo : Integer; begin Memo1.Clear; kk := 0; for i1 := 1 to 9 do for i2 := 0 to 9 do for i3 := 0 to 9 do if ( (i1<>i2) and (i1<>i3) and (i2<>i3) ) then if ( Frac((i1+i2+i3)/7)=0 ) then begin Chislo := i1*100 + i2*10 + i3; if ( Frac(Chislo/7)=0 ) then begin Memo1.Lines.Append(inttostr(Chislo)); inc(kk); end; end; end;
var
i1,i2,i3 : Integer;
kk : Integer;
Chislo : Integer;
begin
Memo1.Clear;
kk := 0;
for i1 := 1 to 9 do
for i2 := 0 to 9 do
for i3 := 0 to 9 do
if ( (i1<>i2) and (i1<>i3) and (i2<>i3) ) then
if ( Frac((i1+i2+i3)/7)=0 ) then
begin
Chislo := i1*100 + i2*10 + i3;
if ( Frac(Chislo/7)=0 ) then
begin
Memo1.Lines.Append(inttostr(Chislo));
inc(kk);
end;
end;
end;
16
Объяснение:
1. Алфавит мощностью 26 символов требует для кодирования символа 5 бит (2⁴ < 26 < 2⁵). 22 символа займут 22×5 = 110 бит = 110 / 8 = 13.75 байта, округляем до целого вверх, получаем 14 байт.
2. Номер года обозначается одним из 100 чисел. 2⁶ < 100 > 2⁷, поэтому для кодирования требуется 7 бит.
3. Номер для обозначается одним из 366 чисел. 2⁸ < 366 > 2⁹, поэтому для кодирования требуется 9 бит.
4. Всего для кодирования срока действия потребуется 7+9 = 16 бит = 16/2 = 2 байта
5. Вся информация на пропуске займет 14+2 = 16 байт