Информатика пәнінен № 2234 тапсырма: Алгоритмдер және программалау (Функция, Рекурсия, жолдармен жұмыс, файлдармен жұмыс, сұрыптау, граф)

Алгоритмдер және программалау (Функция, Рекурсия, жолдармен жұмыс, файлдармен жұмыс, сұрыптау, граф)Бір жауап · орташа

Python тілінде жазылған рекурсивті функция берілген:

def f(s):
if len(s) <= 2:
return s
return f(s[1:-1]) + s[-1] + s[0]

f("ABCDEFG") орындалғанда f функциясы барлығы неше рет шақырылады (бірінші шақыруды қоса) және осы шақыру қандай мән қайтарады?

  1. A4 шақыру; DECFBGA
  2. B3 шақыру; DECFBGA
  3. C4 шақыру; DCEBFAG
  4. D4 шақыру; GAFBECD
Жауап пен талдауды көрсетуЖауап пен талдауды жасыру

Дұрыс жауап

  • A4 шақыру; DECFBGA

Талдау

s[1:-1] кесіндісі бірінші және соңғы таңбаларды алып тастайды. Шақырулар тізбегі: f("ABCDEFG") -> f("BCDEF") -> f("CDE") -> f("D"). "D" жолының ұзындығы 1 (2-ден аспайды), сондықтан рекурсия тоқтайды: барлығы 4 шақыру. Қайтарылатын мән: f("D") = "D"; f("CDE") = "D" + "E" + "C" = "DEC"; f("BCDEF") = "DEC" + "F" + "B" = "DECFB"; f("ABCDEFG") = "DECFB" + "G" + "A" = "DECFBGA". Жауабы: «4 шақыру; DECFBGA». «DCEBFAG» нұсқасы s[0] + s[-1] ретін қате алғанда шығады, «GAFBECD» таңбаларды рекурсия нәтижесінің алдына қосқанда шығады, ал «3 шақыру» базалық жағдайдағы шақыруды ескермейді.

Тапсырмадағы қате

Шартындағы, нұсқаларындағы немесе талдауындағы қатені сипаттаңыз. 1000 таңбадан аспасын.

Осы тақырып бойынша ұқсас тапсырмалар

Тақырыптағы барлық 7 тапсырма

«Информатика» пәні бойынша репетиторлар

Тренажер

Осы тақырыпты жаттықтырыңыз

7 тапсырма бір-бірден, жауабы мен талдауы бірден көрсетіледі. Уақыт шектеуі жоқ.

Өз сынағыңыз

Таймері бар сынақ жинаңыз

ҰБТ сияқты: тапсырмаға 2 минут.

Неше тапсырма