Дан фрагмент программы обработки двумерного массива:
for I:=1 to 6 do
for J:=1 to 6 do
begin
S:=A[I,J] mod K;
if (S mod 2) = 0 then
A[I,J]:= 1
else A[I,J]:= 0;
end;
На вход ему подан массив А, приведенный ниже.
19_21_23_25_27_29
57_59_61_63_65_31
55_81_83_85_67_33
53_79_89_87_69_35
51_77_75_73_71_37
49_47_45_43_41_39
Какое минимальное значение должно быть у переменной K, чтобы по завершении выполнения фрагмента массив A содержал одинаковое количество единиц и нулей?
Ответы
Ответ дал:
0
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
begin
var b:array[1..6,1..6] of integer:=(
(19,21,23,25,27,29),(57,59,61,63,65,31),
(55,81,83,85,67,33),(53,79,89,87,69,35),
(51,77,75,73,71,37),(49,47,45,43,41,39));
var a:array[1..6,1..6] of integer;
var k:=2;
var k0,k1:integer;
for var i:=1 to 6 do begin
for var j:=1 to 6 do Print(b[i,j]);
Writeln
end;
Writeln;
repeat
k0:=0;
k1:=0;
Writeln('k=',k);
for var i:=1 to 6 do begin
for var j:=1 to 6 do begin
if (b[i,j] mod k) mod 2=0 then
begin a[i,j]:=1; Inc(k1) end
else begin a[i,j]:=0; Inc(k0) end;
Print(a[i,j])
end;
Writeln
end;
Writeln('k0=',k0,', k1=',k1);
if k0<>k1 then Inc(k)
until k0=k1;
Writeln(NewLine,'k=',k)
end.
Решение
19 21 23 25 27 29
57 59 61 63 65 31
55 81 83 85 67 33
53 79 89 87 69 35
51 77 75 73 71 37
49 47 45 43 41 39
k=2
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=3
0 1 1 0 1 1
1 1 0 1 1 0
0 1 1 0 0 1
1 0 1 1 1 1
1 1 1 0 1 0
0 1 1 0 1 1
k0=12, k1=24
k=4
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=5
1 0 0 1 1 1
1 1 0 0 1 0
1 0 0 1 1 0
0 1 1 1 1 1
0 1 1 0 0 1
1 1 1 0 0 1
k0=14, k1=22
k=6
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=7
0 1 1 1 1 0
0 0 0 1 1 0
1 1 1 0 1 0
1 1 0 0 1 1
1 1 0 0 0 1
1 0 0 0 1 1
k0=16, k1=20
k=8
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=9
0 0 0 0 1 1
0 0 0 1 1 1
0 1 1 1 1 1
1 0 1 1 1 1
1 0 0 0 1 0
1 1 1 0 0 0
k0=16, k1=20
k=10
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=11
1 1 0 0 0 0
1 1 1 1 1 0
1 1 1 1 0 1
0 1 0 1 0 1
0 1 0 0 0 1
0 0 0 1 1 1
k0=16, k1=20
k=12
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=13
1 1 1 1 0 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
1 1 1 1 1 0
1 1 1 1 1 1
k0=18, k1=18
k=13
Ответ: 13
begin
var b:array[1..6,1..6] of integer:=(
(19,21,23,25,27,29),(57,59,61,63,65,31),
(55,81,83,85,67,33),(53,79,89,87,69,35),
(51,77,75,73,71,37),(49,47,45,43,41,39));
var a:array[1..6,1..6] of integer;
var k:=2;
var k0,k1:integer;
for var i:=1 to 6 do begin
for var j:=1 to 6 do Print(b[i,j]);
Writeln
end;
Writeln;
repeat
k0:=0;
k1:=0;
Writeln('k=',k);
for var i:=1 to 6 do begin
for var j:=1 to 6 do begin
if (b[i,j] mod k) mod 2=0 then
begin a[i,j]:=1; Inc(k1) end
else begin a[i,j]:=0; Inc(k0) end;
Print(a[i,j])
end;
Writeln
end;
Writeln('k0=',k0,', k1=',k1);
if k0<>k1 then Inc(k)
until k0=k1;
Writeln(NewLine,'k=',k)
end.
Решение
19 21 23 25 27 29
57 59 61 63 65 31
55 81 83 85 67 33
53 79 89 87 69 35
51 77 75 73 71 37
49 47 45 43 41 39
k=2
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=3
0 1 1 0 1 1
1 1 0 1 1 0
0 1 1 0 0 1
1 0 1 1 1 1
1 1 1 0 1 0
0 1 1 0 1 1
k0=12, k1=24
k=4
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=5
1 0 0 1 1 1
1 1 0 0 1 0
1 0 0 1 1 0
0 1 1 1 1 1
0 1 1 0 0 1
1 1 1 0 0 1
k0=14, k1=22
k=6
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=7
0 1 1 1 1 0
0 0 0 1 1 0
1 1 1 0 1 0
1 1 0 0 1 1
1 1 0 0 0 1
1 0 0 0 1 1
k0=16, k1=20
k=8
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=9
0 0 0 0 1 1
0 0 0 1 1 1
0 1 1 1 1 1
1 0 1 1 1 1
1 0 0 0 1 0
1 1 1 0 0 0
k0=16, k1=20
k=10
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=11
1 1 0 0 0 0
1 1 1 1 1 0
1 1 1 1 0 1
0 1 0 1 0 1
0 1 0 0 0 1
0 0 0 1 1 1
k0=16, k1=20
k=12
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
k0=36, k1=0
k=13
1 1 1 1 0 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
1 1 1 1 1 0
1 1 1 1 1 1
k0=18, k1=18
k=13
Ответ: 13
Вас заинтересует
7 лет назад
7 лет назад
9 лет назад
10 лет назад
10 лет назад