Program task28; uses crt; var n: string; begin write('zadaite slovo dlya doma= '); readln(n); {в центр можно вписать 8 символов и домик будет тогда целый} writeln(' /'); writeln(' __/'); writeln(' __/'); writeln(' __/'); writeln('__/'); writeln(' _||_'); writeln(' _||_'); writeln(' _|' , n , '|_'); writeln(' _||_'); readkey; end.
katdavidova91
14.09.2020
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.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Где находятся все последние действия в компьютере?