program Program1; var i, j, n, k: integer; var result: real; var array1: array [1..255] of real; begin result := 0; write('Введите значение N (не более 255): '); readln(n); for i := 1 to n do begin write('Введите значение ', i, ' элемента массива: '); readln(array1[i]); end; begin writeln('Массив, размером - ', n, ' элементов(а):'); for i := 1 to n do write(array1[i], ' '); writeln; end; for i:=1 to n do begin k := 0; for j:=1 to n do if array1[i] = array1[j] then k := k + 1; if k = 1 then result := result + array1[i]; end; writeln('Сумма уникальных элементов массива = ', result); end.
program Program1;
var i, j, n, k: integer;
var result: real;
var array1: array [1..255] of real;
begin
result := 0;
write('Введите значение N (не более 255): ');
readln(n);
for i := 1 to n do
begin
write('Введите значение ', i, ' элемента массива: ');
readln(array1[i]);
end;
begin
writeln('Массив, размером - ', n, ' элементов(а):');
for i := 1 to n do write(array1[i], ' ');
writeln;
end;
for i:=1 to n do
begin
k := 0;
for j:=1 to n do
if array1[i] = array1[j] then k := k + 1;
if k = 1 then result := result + array1[i];
end;
writeln('Сумма уникальных элементов массива = ', result);
end.
G(9) = 9! = 362880
Объяснение:
Из условия задачи видно, что функция G рекурсивная, с условием завершения рекурсии при G(1) = 1
Тогда найдём значение при n = 9
Для удобства я буду обозначать -> как вхождение в рекурсию:
G(9) = G(8) * 9 -> G(7) *8 -> G(6) * 7 -> G(5) * 6 -> G(4) * 5 -> G(3) * 4 -> G(2) * 3 -> G(1) * 2 -> G(1) - это последовательность вызовов данной рекурсии, вглядевшись в которую можно увидеть факториал, откуда
G(9) = 9! = 362880
Теперь же пройдёмся обратно по рекурсии, где -> обозначает выход из рекурсии
G(1) = 1 -> G(2) = 1 * 2 = 2 -> G(3) = 2 * 3 = 6 -> G(4) = 6 * 4 = 24 -> G(5) = 24 * 5 = 120 -> G(6) = 120 * 6 = 720 -> G(7) = 720 * 7 = 5040-> G(8) = 5040 * 8 = 40320 -> G(9) = 40320 * 9 = 362880