Задача 14 Урок 15
Primary tabs
Дан массив длиной N (не более 100 элементов). Проверить, что в нем в встречаются все числа от 0 до k, где 0≤k
program lesson15_14;
type
myArr = array[0..99] of integer;
function check(a, b: myArr; k: integer): string;
var
i, j: integer;
begin
for i := low(a) to high(a) do
for j := low(b) to k - 1 do
if a[i] = b[j] then
begin
b[j] := -1;
break;
end;
for i := low(b) to k - 1 do
if b[i] <> -1 then
begin
result := 'no';
exit;
end;
result := 'yes';
end;
var
arr1: myArr;
arr2: myArr;
k, i: integer;
begin
k := 5;
for i := low(arr2) to k - 1 do
arr2[i] := i;
randomize();
for i := low(arr1) to high(arr1) do
arr1[i] := random(100);
write(check(arr1, arr2, k));
readln();
end. - Log in to post comments
- 2547 reads
vedro-compota
Thu, 08/12/2021 - 20:19
Permalink
можно решить без второго
можно решить без второго массива
_____________
матфак вгу и остальная классика =)
Aleksandr
Tue, 08/17/2021 - 19:47
Permalink
решение
program lesson15_14; type myArr = array[0..99] of integer; function check(a: myArr; k: integer): string; var i, j, count: integer; begin for i := 0 to k - 1 do begin count := 0; for j := low(a) to high(a) do if i <> a[j] then count := count + 1; if count = high(a) + 1 then begin result := 'no'; exit; end; end; result := 'yes'; end; var arr1: myArr; k, i: integer; begin k := 5; randomize(); for i := low(arr1) to high(arr1) do arr1[i] := random(100); writeln(check(arr1, k)); readln(); end.vedro-compota
Tue, 08/17/2021 - 21:21
Permalink
function check(a: myArr; k:
-- лучше возвращать boolean
-- можно сделать оптимальнее с break
_____________
матфак вгу и остальная классика =)
Aleksandr
Thu, 08/19/2021 - 19:58
Permalink
решение
program lesson15_14; type myArr = array[0..99] of integer; function check(a: myArr; k: integer): boolean; var i, j: integer; begin for i := 0 to k - 1 do begin result := false; for j := low(a) to high(a) do if i = a[j] then begin result := true; break; end; if not result then exit; end; end; var arr: myArr; k, i: integer; begin k := 5; randomize(); for i := low(arr) to high(arr) do arr[i] := random(100); writeln(check(arr, k)); readln(); end.vedro-compota
Thu, 08/19/2021 - 20:39
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)