Паскаль... кто может помочь
Дан массив целых чисел А [50] элементы массива случайные числа в интервале от [0..100] . определить имеются ли в этом массиве элементы сумма которых равна 200
Дан массив целых чисел А [50] элементы массива случайные числа в интервале от [0..100] . определить имеются ли в этом массиве элементы сумма которых равна 200
Находит произвольное число элементов, сумма которых равна 200, и выводит их индексы и значения, если таких элементов нет то выводится сообщение.
type
ta = array [1..50] of integer;
var
m: array [1..50, 0..199] of boolean;
function IsHave200(a: ta; c, s: integer): boolean;
var
k: integer;
r: boolean;
begin
r := false;
for k := c to 50 do begin
if s + a[k] = 200 then begin
write('a[', k, ']=', a[k], ' ');
r := true;
break;
end
else if (s + a[k] < 200) and (k < 50) then begin
if not m[k, s + a[k]] then begin
r := IsHave200(a, k + 1, s + a[k]);
if r then begin
write('a[', k, ']=', a[k], ' ');
break;
end;
m[k, s + a[k]] := true;
end;
end;
end;
IsHave200 := r;
end;
var
a: ta;
c: integer;
begin
randomize;
writeln('массив: ');
for c := 1 to 50 do begin
a[c] := random(101);
write(a[c]:4);
end;
writeln;
if not IsHave200(a, 1, 0) then writeln('таких элементов нет');
end.
а что, мой ответ тебя не устроил насчет 2-х чисел, а тройным циклом сумма 3-х чисел и т. д. или за тебя всю программу сделать?
На паскале никогда не писал, но могу сказать какие действия нужно выполнять.