Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/55: Рейтинг темы: голосов - 55, средняя оценка - 4.51
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678

Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова

29.12.2020, 00:47. Показов 11883. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
def F(n):
 
    if n > 0:
 
        F(n - 4)
 
        print(n)
 
        F(n // 3)
Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F(9)?
я вот не понимаю почему ответ будет 20
раз n>0, то идет опять как то функция , что для меня непонятно как это функция в функции и далее что то печатается и опять следующая функция идет только прикол в том , что после нее нет принта и она не выводится по логике на экран, тогда зачем она нужна
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.12.2020, 00:47
Ответы с готовыми решениями:

Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова
Ниже записан рекурсивный алгоритм F. def F(n): if n > 0: F(n - 4) F(n // 3) print(n) Чему...

Чему равна сумма всех чисел, напечатанных на экране
Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F(10)? def F(n): if n > 0: F(n - 4) ...

Чему равна сумма напечатанных на экране чисел
Чему равна сумма напечатанных на экране чисел при выполнении вызова F(10)? def F(n): if n > 2: print(n) F(n...

8
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678
29.12.2020, 09:05  [ТС]
Вот и как это понять?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.12.2020, 09:20
Лучший ответ Сообщение было отмечено Ychenyi как решение

Решение

Ychenyi, это рекурсия - вызов функции самой из себя.
Если ты только приступил к изучению функций как таковых, отложи рекурсию до момента, когда тебе станет все ясно как в Божий день, непосредстввенно в функциях. Иначе мозг закипит
Вот почитай мой опус Как работают функции?
Да и всю тему, может поможет пониманию
2
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
29.12.2020, 09:34
Ychenyi, код показывает различие при обращении к аргументу до рекурсивного обращения функции и после рекурсивного обращения

Добавлено через 1 минуту
Python
1
2
3
4
5
6
7
8
9
10
def F(n, d = 0):
 
    if n > 0:
 
        F(n - 4, d + 10)
 
        print(n, d)
 
        F(n // 3, d)
F(9)
Попробуй этот код
1
29.12.2020, 09:34

Не по теме:

Цитата Сообщение от iSmokeJC Посмотреть сообщение
Вот почитай мой опус Как работают функции?
Попытался прочесть и вникнуть про снусмумриков - сломал мозг :wall:

0
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678
29.12.2020, 10:54  [ТС]
iSmokeJC, прочитал, понял
а можете пожалуйста все таки рекурсию объяснить

Добавлено через 2 минуты
Gdez, получил следующее:
Code
1
2
3
4
5
6
1 20
5 10
1 10
9 0
3 0
1 0
только не понял откуда в первой строке
Code
1
1 20
и три последние , где расписано
Code
1
2
3
9 0
3 0
1 0
Добавлено через 54 минуты
WhiteP, Gdez, iSmokeJC, хотя не нужно объяснений, нашел дебаггер и пошагово запустил и просто офигел, проще тогда это задание не готовить к ЕГЭ, а в IDLE скопипастить и запустить
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
29.12.2020, 11:23
Лучший ответ Сообщение было отмечено Ychenyi как решение

Решение

Ychenyi,Возможно ошибаюсь, надеюсь поправят, где ошибся:
"0" показывает, когда вызывется функция после print. Остальные - когда print после вызова функции.

Вызывается F(n-4, d+10) при n=9, d становится = 10 (первое d)
F(9-4, 0 + 10) = F(5, 10) (по условию > 0) => теперь n = 5 (первое n в памяти) и d = 10 (второе d) и эти числа "откладываются" в память
F(n-4, d+10) = F(5-4, 10+10) = F(1, 20) (по условию > 0) => теперь n = 1 (второе n) и d = 20 (третье d) и эти числа "откладываются" в память
F(n-4, d+10) = F(1-4,20+10) = F(-3,30) (по условию < 0) => всё, рекурсия закончилась, в память ничего не ушло.
Идет печать из памяти в обратном порядке => n=1 d=20 (третье d), затем n=5 d=10 (второе d)
Идет переход к другому оператору => print(n, d)
Печать последнего значения n=1 и d=10 (первое d) из памяти
Всего первая рекурсия вызвала 3 print'а, так как было три условия (9>0, 5>0, 1>0)
Следующий оператор
F(n//3)
Но тут снова n берется из основного def. Поэтому n=9
Условие n>0 ? Да
В начале печать n=9
Деление на 3 => n=3
Условие n>0 ? Да
Печать 3
Деление на 3 => n=1
Условие n>0 ? Да
Печать 1
Деление на 3 => n=0
Условие n>0 ? Нет
Выход из функции
Конец
1
840 / 347 / 67
Регистрация: 20.11.2012
Сообщений: 809
29.12.2020, 11:39
Gdez, такое проще всего понять, нарисовав блок-схему.
Ychenyi, главное понять где у функции точка выхода - функция завершается только при n<0, либо при прохождении последней строки кода.

Не по теме:

Вот именно по подобным примерам попыток объяснения считаю, что ассемблер, архитектура ПК, структуры данных, алгоритмы и компилируемые языки должны изучаться перед вот этой всей красотой. Насколько проще после понимания концепций стека приложения и указателей понять как работает рекурсия

2
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678
29.12.2020, 14:30  [ТС]
iSmokeJC,

Не по теме:

поздравляю с новым званием

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2020, 14:30
Помогаю со студенческими работами здесь

Чему равна сумма всех чисел, напечатанных на экране при выполнении рекурсивного алгоритма?
Здравствуйте, готовлюсь к ЕГЭ по информатике и столкнулся с задачей, приведенной в приложении к теме. Необходимо найти сумму всех чисел,...

Рекурсия. Чему равна сумма всех чисел, при выполнении вызова F(1) ?
Никак не додумаюсь как сделать сумму всех чисел и сомневаюсь правильна ли программа вообще, помогите пожалуйста! var n:integer; ...

Чему равна сумма чисел
Чему равна сумма чисел на картинке. Числа надо найти сначала:p

Требуется вывести, чему равна сумма квадратов разностей чисел
Как это сделать? Даны два массива целых чисел длинны n. Даются q запросов. Каждый запрос состоит из чисел l и r, после каждого запроса...

Чему равна сумма чисел? Ответ записать в двоичной системе счисления
Чему равна сумма чисел 578 и 4616? Ответ записать в двоичной системе счисления. помогите на питоне пожалуйста спасибо большое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru