Написать программу на паскале. написать. числа фибоначчи (fn) определяются формулами: f0=f1=1, fn=fn-1+fn-2 при n=2,3,… определить f10, f25, f40.
145
396
Ответы на вопрос:
1) решение с рекурсии. программа проста в понимании, но неэффективна при больших значениях function f(i: integer): longint; begin if i < 2 then f : = 1 else f : = f(i - 1) + f(i - 2); end; begin writeln('f(10) = ', f(10)); writeln('f(25) = ', f(25)); writeln('f(40) = ', f(40)); end. 2) решение с динамического программирования. вычисляет намного быстрее, чем решение с рекурсией. var i: integer; f: array[0..40] of longint; begin f[0] : = 1; f[1] : = 1; for i : = 2 to 40 do f[i] : = f[i - 1] + f[i - 2]; writeln('f(10) = ', f[10]); writeln('f(25) = ', f[25]); writeln('f(40) = ', f[40]); end. 3) решение с моделирования. использует меньше памяти. function f(i: integer): longint; var a, b: longint; j: integer; begin if i < 2 then f : = 1 else begin a : = 0; b : = 1; for j : = 0 to i do begin b : = a + b; a : = b - a; end; f : = a; end; end; begin writeln('f(10) = ', f(10)); writeln('f(25) = ', f(25)); writeln('f(40) = ', f(40)); end.
ответ:
var g,h: integer;
gg,hh,d: real;
begin
repeat
read(g,h);
if g=0 and h=0 then break;
gg: =30*(g mod 12)+h/2;
hh: =h*6;
d: =abs(gg-hh);
if d> 180 then d: =360-d;
writeln('at ',g,': ',h,' the angle is ',d: 2: 1,' degrees.');
until false;
end.
Популярно: Информатика
-
Anastasia771120.06.2023 13:32
-
galinapetrovic01.09.2020 10:40
-
Etopizdato21.11.2021 17:43
-
polina378221.02.2022 15:23
-
Dasha1235712304.05.2022 18:03
-
Rokwe05.06.2020 03:26
-
mynomynou02.11.2022 05:55
-
Ķрičтina23.02.2021 02:35
-
Martina1726.07.2021 07:30
-
danilasen3406.01.2022 11:19