М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
shreyder2016
shreyder2016
06.05.2023 07:21 •  Информатика

Решить леонардо фибоначчи: "сколько пар кроликов можно получить от одной пары кроликов в год, если каждая пара ежемесячно дает еще одну пару приплода, каждая новая пара становится к размножению в возрасте одного месяца и в течение года кролики не умирают." использовать два алгоритма: 1) с рекурсией 2) без рекурсии
пользователь вводит: n=количество месяцев
вывести на экран для каждого шага:
номер месяца, количество пар кроликов, приближенное значение, значение fn+1/fn, приближенное значение номера числа фибоначчи
сравнить с асимптотикой при больших n.
найти все n, для которых а) fn=n б) fn=n2 в) fn - простое
найти нод для двух чисел фибоначчи с номерами m и n и показать, что нод (fn, fm) = нод (n,m)

👇
Открыть все ответы
Ответ:
MrTroLoLo10
MrTroLoLo10
06.05.2023

const

      MAX = 20;

    var

      s:string;

      stack:array[1..MAX] of string;

      top:integer;

      i:byte;

   

    procedure Push(ch:string);

    begin

      if top>=MAX then WriteLn('Stask full')

      else

      begin

        stack[top]:=ch;

        top:=top+1;

      end;

    end;

   

    function Pop:string;

    begin

      top:=top-1;

      if top<1 then

      begin

        WriteLn('Stack underflow');

        top:=top+1;

      end

      else Pop := stack[top];

    end;

begin

top:=1;

s:='<asdf<asdf>asdf>';//правильная строка

for i:=1 to length(s) do

begin

   if s[i]='<' then Push('<');

   if s[i]='>' then

       if Pop()<>'<' then WriteLn('Ошибка!');

end;

if top<>1 then WriteLn('Ошибка!');

top:=1;

s:='<asdf<asdfasdf>';//не правильная строка

for i:=1 to length(s) do

begin

   if s[i]='<' then Push('<');

   if s[i]='>' then

     if Pop()<>'<' then WriteLn('Ошибка!');

end;

if top<>1 then WriteLn('Ошибка!');

end.

Объяснение:

4,6(54 оценок)
Ответ:
aleksejsmolyan
aleksejsmolyan
06.05.2023

/* memsegments.c */

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

typedef struct mem

{

   char text[100];

   int *p;

} mem;

int cmp_by_address(const void *, const void *);

void print_struct_array(mem *, size_t);

int init_global_var = 10;        /* Initialized global variable */

int global_var;                  /* Uninitialized global variable */

static int init_static_var = 20; /* Initialized static variable in global scope */

static int static_var;           /* Uninitialized static variable in global scope */

int main(int argc, char **argv, char **envp)

{

   static int init_static_local_var = 30;   /* Initialized static local variable */

   static int static_local_var;             /* Uninitialized static local variable */

   int init_local_var = 40;                 /* Initialized local variable */

   int local_var;                           /* Uninitialized local variable */

   int *dynamic_var = (int*)malloc(sizeof(int));  /* Dynamic variable */

   mem structs[] =

   {

       {"Global variable (initialized)", &init_global_var},

       {"Global variable (uninitialized)", &global_var},

       {"Static variable (in global scope, initialized)", &init_static_var},

       {"Static variable (in global scope, uninitialized)", &static_var},

       {"Static variable (in local scope, initialized)", &init_static_local_var},

       {"Static variable (in local scope, uninitialized)", &static_local_var },

       {"Function (code)", (int*)&main },

       {"Environment variable", (int*)&envp[0] },

       {"Local variable (initialized)", &init_local_var },

       {"Local variable (uninitialized)", &local_var },

       {"Dynamic variable", dynamic_var },

   };

   size_t len = sizeof(structs) / sizeof(mem);

   qsort(structs, len, sizeof(mem), cmp_by_address);

   print_struct_array(structs, len);

   free(dynamic_var);

   return 0;

}

int cmp_by_address(const void *a, const void *b)

{

   mem *ma = (mem *)a;

   mem *mb = (mem *)b;

   if ((unsigned)ma->p > (unsigned)mb->p)

       return -1;

   else if ((unsigned)ma->p < (unsigned)mb->p)

       return 1;

   else

       return 0;

}

/* Example struct array printing function */

void print_struct_array(mem *array, size_t len)

{

   size_t i;

   for(i=0; i<len; i++)

       printf("%-50s:\t%p\n", array[i].text, array[i].p);

}

В результате получим:

Environment variable                              :     0xbff52ee0

Local variable (uninitialized)                    :     0xbff529ac

Local variable (initialized)                      :     0xbff529a8

Dynamic variable                                  :     0x871c008

Global variable (uninitialized)                   :     0x804a044

Static variable (in local scope, uninitialized)   :     0x804a040

Static variable (in global scope, uninitialized)  :     0x804a03c

Static variable (in local scope, initialized)     :     0x804a034

Static variable (in global scope, initialized)    :     0x804a030

Global variable (initialized)                     :     0x804a02c

Function (code)                                   :     0x80484ad

Утилита size показывает размер разделов и общий размер для объектных файлов или архивов. Так, для memsegments.o получим:

$ size memsegments.o

  text    data     bss     dec     hex filename

   745      12       8     765     2fd memsegments.o

Объяснение:

4,7(22 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ