Написать программу которой на вход подается 10 чисел, и она находит среди них количество чисел кратных 5 пример ввод 1, 7,15, 3, 7, 40, 45, 32, 76, 10 вывод кратны 5: 15, 40, 45, 10 - всего 4 числа. pascal. надо!
Program n1; var a: array[1..10] of integer; k,i: integer; begin k:=0; for i:=1 to 10 do read(a[i]); write('кратны 5: '); for i:=1 to 10 do if a[i] mod 5=0 then begin k:=k+1; write(a[i],' '); end; write('- всего ',k,' числа'); end.
// PascalABC.NET 3.0, сборка 1128 var i,j,k,n,p:longint; f:array[1..10,1..2] of longint; begin p:=2; i:=1; f[1,1]:=1; f[1,2]:=1; Write('Введите натуральное число не больше 2 147 483 647: '); Read(n); while n<>1 do begin if (n mod p)=0 then begin if f[i,1]<>p then begin Inc(i); f[i,1]:=p; f[i,2]:=1 end else Inc(f[i,2]); n:=n div p end else inc(p) end; k:=i; for i:=2 to k do for j:=1 to f[i,2] do Write(f[i,1],' '); Writeln end.
Тестовое решение: Введите натуральное число не больше 2 147 483 647: 37534 2 7 7 383
1) Решение методом рекурсии. Программа проста в понимании, но неэффективна при больших значениях var n: integer; function f(i: integer): longint; begin if i < 2 then f := 1 else f := f(i - 1) + f(i - 2); end; begin read(n); writeln(f(n)); end.
2) Решение методом динамического программирования. Намного быстрее метода с рекурсией. var i, n: integer; f: array[0..50] of longint; begin read(n); f[0] := 1; f[1] := 1; for i := 2 to n do f[i] := f[i - 1] + f[i - 2]; writeln(f[n]); end.
3) Решение методом моделирования. Использует меньше памяти. var n, a, b, i: integer; begin read(n); if n < 2 then a := 1 else begin a := 0; b := 1; for i := 0 to n do begin b := a + b; a := b - a; end; end; writeln(a); end.
var a: array[1..10] of integer;
k,i: integer;
begin
k:=0;
for i:=1 to 10 do read(a[i]);
write('кратны 5: ');
for i:=1 to 10 do
if a[i] mod 5=0 then
begin
k:=k+1;
write(a[i],' ');
end;
write('- всего ',k,' числа');
end.