Заполнить массив случайными числами и отобрать в другой массив все числа фибона-ччи. используйте логическую функцию, которая определяет, является ли переданное ей число числом фибоначчи. пример: массив а: 12 13 85 34 47 массив b: 13 34
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016 function IsFibb(n:integer):boolean; begin var f1:=1; var f2:=1; while n>f2 do begin var t:=f2; f2+=f1; f1:=t end; Result:=(n=f2) end;
begin var a:=ArrRandom(ReadInteger('n='),1,50); Writeln('Массив А:'); a.Println; var b:=a.Where(k->IsFibb(k)).ToArray; Writeln('Массив B:'); b.Println end.
Задача №1 var a:array[1..4, 1..5] of integer; i,j,k:integer; begin writeln('Заполните матрицу'); for i:=1 to 4 do for j:=1 to 5 do begin read(a[i,j]); if (a[i,j] mod 3=0) and (a[i,j]>20) then k:=k+a[i,j]; end; writeln('Сумма элементов кратных 3-м и > 20 = ',k); end.
Задача №2 var a:array[1..5, 1..5] of integer; i,j,k:integer; begin writeln('Заполните матрицу'); for i:=1 to 5 do for j:=1 to 5 do begin read(a[i,j]); if i=j then k:=k+a[i,j]; end; writeln('Сумма элементов главной диагонали = ',k); end.
Не самый рациональный метод решения, но как говорится чем смог тем
var a,b,c,x,kc,kn,k1,k2:integer; begin kc:=1; kn:=1; k1:=0; k2:=0; a:=0; b:=0; writeln('Введите число x'); read(x); while x>0 do begin c:=x mod 10; if c mod 2=0 then begin inc(k1); a:=a+c*kc; kc:=kc*10; end; if c mod 2<>0 then begin inc(k2); b:=b+c*kn; kn:=kn*10; end; x:=x div 10; end; if k1>k2 then writeln('Четных больше нечетных') else if k1=k2 then writeln('Количество четных = количеству нечетных') else writeln('Четных меньше нечетных'); writeln(a,' ', b); end.
function IsFibb(n:integer):boolean;
begin
var f1:=1;
var f2:=1;
while n>f2 do begin var t:=f2; f2+=f1; f1:=t end;
Result:=(n=f2)
end;
begin
var a:=ArrRandom(ReadInteger('n='),1,50);
Writeln('Массив А:'); a.Println;
var b:=a.Where(k->IsFibb(k)).ToArray;
Writeln('Массив B:'); b.Println
end.
Тестовое решение
n= 20
Массив А:
35 41 3 41 13 33 2 32 46 17 46 42 45 46 35 24 18 34 19 1
Массив B:
3 13 2 34 1