Найти сумму элементов, сумма индексов которых является числом Фибоначчи - Free Pascal
Формулировка задачи:
2)Дана вещественная матрица. Найти сумму элементов, сумма индексов которых является числом Фибоначчи.
Решение задачи: «Найти сумму элементов, сумма индексов которых является числом Фибоначчи»
textual
Листинг программы
const size = 10;
function isFib(n : integer) : boolean; // Проверка, является ли n числом Фибоначчи
function isPerfect(p : integer) : boolean;
begin isPerfect := Sqr(Trunc(Sqrt(p))) = p end;
begin
isFib := isPerfect(5*sqr(n) + 4) or isPerfect(5*sqr(n) - 4);
end;
var
a : array[1 .. size, 1 .. size] of real;
i, j : integer;
s : real;
begin
for i := 1 to size do
begin
for j := 1 to size do
begin
a[i, j] := random * 100;
write(a[i, j]:7:2);
end;
writeln;
end;
s := 0.0;
for i := 1 to size do
for j := 1 to size do if isFib(i + j) then s := s + a[i, j];
writeln('s = ', s:7:2);
end.
Объяснение кода листинга программы
- Объявлены константа
sizeравная 10 и функцияisFibдля проверки является ли число Фибоначчи. - Объявлена функция
isPerfectдля проверки является ли число совершенным (используется квадратный корень и округление до ближайшего целого числа). - В основной части программы объявлен массив
aразмеромsize x sizeдля хранения случайных чисел. - В цикле заполняют массив
aслучайными числами. - Выводят на экран массив
aпострочно. - Инициализируют переменную
sравной 0.0. - В двойном цикле суммируют элементы массива
a, которые являются числами Фибоначчи. - Выводят на экран значение переменной
s.