0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 13

Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае

22.12.2018, 17:57. Показов 72378. Ответов 6

Author24 — интернет-сервис помощи студентам
Пытаюсь освоить рекурсию, пока больше "методом тыка", правда...
Вроде, несложная задача на вывод последовательности чисел, но никак не получается выполнить одно в ней условие. Подскажите, пожалуйста, как переделать код, чтобы оно все-таки выполнялось.

Условие задачи:
B: От A до B

Даны два целых числа A и В (каждое в отдельной строке). Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае.

Мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
def count(a, b):
    
    if a<b:
        count(a, b - 1)
        print b
    elif a>b:
        print a
        count(a - 1, b)
a = input()
b = input()
count (a, b)
Если включить "=" в if, то рекурсия становиться бесконечной, а если не включать, то в выводе не хватает одного значения...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.12.2018, 17:57
Ответы с готовыми решениями:

Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае
Нужна помощь по scheme, не могу понять как оно должно выглядеть (define a (read)) (define b (read)) (define (Func a b) (if...

Вывести все числа от A до B включительно, в порядке возрастания, если A <B, или в порядке убывания в противном случае
Вариант 1 Даны два целых числа A и В (каждое в отдельной строке). Выведем все числа от A до B включительно, в порядке возрастания, если A...

Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае
Нужна помощь по scheme, не могу понять как оно должно выглядеть (define a (read)) (define b (read)) (define (Func a b) (if (...

6
 Аватар для hitomy
318 / 115 / 16
Регистрация: 07.10.2012
Сообщений: 542
23.12.2018, 01:34
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
#Даны два целых числа A и В (каждое в отдельной строке). 
#Выведите все числа от A до B включительно, в порядке возрастания, если A < B, 
#или в порядке убывания в противном случае.
 
A=int(input())
B=int(input())
 
if A<B:                             #A<B выводим по возрастанию
    for i in range(A, B+1):
        print(i)
else:                               #B<A по убыванию
    for i in reversed(range(B, A+1)):
        print(i)
1
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
23.12.2018, 03:42
Лучший ответ Сообщение было отмечено vtr250 как решение

Решение

В условии ничего не сказано про рекурсию. Но если Вы хотите выполнить задачу именно с помощью рекурсии, для ее освоения, то тогда так:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def count(a, b):
    
    if a<b:
        count(a, b - 1)
        print(b)
    elif a>b:
        print(a)
        count(a - 1, b)
    else:
        print(a)
a = int(input())
b = int(input())
count (a, b)
пример:

2
9
2
3
4
5
6
7
8
9

Судя по синтаксису инструкции print у Вас старая версия. Как в ней я не знаю. В 3.6.3 все нормально работает.
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5967 / 3730 / 1098
Регистрация: 17.05.2012
Сообщений: 10,787
Записей в блоге: 9
23.12.2018, 07:04
Условие выхода из рекурсии написать забыли (строчки 2-4):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def count(a, b):
    if a == b:
        print(a)
        return 
    if a < b:
        # asc
        count(a, b - 1)
        print(b)
    else:
        # desc
        print(a)
        count(a - 1, b)
 
count(5, 10)
print('----')
count(10, 5)
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
23.12.2018, 23:06
Я хотел было ввести return. Но как доказывает мой код, необходимости в нем нет. программа и так выходит из функции. На самом деле return нужен только тогда, когда функция должна вернуть результат, или когда нужно прервать выполнение функции, хотя она могла бы еще что то делать. В данном случае в этом нет необходимости. Все прекрасно работает и без return, в этом можно убедиться запустив сценарий. Практика - критерий истины.

Добавлено через 10 минут
В данном случае условием выхода из рекурсии служит блок else: , в котором отсутствует обращение функции самой к себе.
0
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 13
24.12.2018, 02:20  [ТС]
Всем спасибо!
Получилось вот что:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def count(a, b):
    if a < b:
        print(a)
        count(a + 1, b)
        
    elif a>b:
        print(a)
        count(a - 1, b)
 
    else:
        print(a)
 
a = input()
b = input()
count (a, b)
Тоже на первый взгляд без условия выхода, но работает корректно.
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
26.12.2018, 15:17
vtr250, Я же говорил, что блок else и есть условие выхода из рекурсии, если в нем нет обращения к функции (сама к себе). И return для выхода с функции в данном случае не нужен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.12.2018, 15:17
Помогаю со студенческими работами здесь

Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае.
пробовала сделать ,но выдаёт ошибки я не понимаю,что он требует ТЕКСТ ЗАДАЧИ. Даны два целых числа A и В (каждое в отдельной...

Выведите все числа от A до B включительно, в порядке возрастания, если A < B
2. Даны два целых числа A и В (каждое в отдельной строке). Выведите все числа от A до B включительно, в порядке возрастания, если A &lt; B,...

Выведите все числа от A до B включительно, в порядке возрастания, если A < B
Даны два целых числа A и В. Выведите все числа от A до B включительно, в порядке возрастания, если A &lt; B, или в порядке убывания в...

Выведите с помощью рекурсии все числа от А до В включительно в порядке возрастания, если А меньше В
Даны два целых числа А и В. Выведите с помощью рекурсии все числа от А до В включительно в порядке возрастания, если А меньше В, или в...

Найдите и выведите все делители числа n в порядке возрастания, а затем в порядке убывания
Дано целое число n. Найдите и выведите все делители числа n в порядке возрастания, а затем в порядке убывания. Входные данные: 60 ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Динамические массивы в C++ - создание и использование
NullReferenced 27.04.2025
Динамические массивы представляют собой один из фундаментальных инструментов программирования на C++, позволяющий создавать структуры данных, размер которых определяется во время выполнения. . .
Асинхронный JavaScript: Промисы, Async/Await и Fetch API
Reangularity 27.04.2025
Пользователь заходит на веб-страницу, нажимает кнопку и. . . ничего не происходит. Сайт словно замер. Через несколько секунд всё внезапно оживает, но пользователь уже успел закрыть вкладку. Знакомая. . .
Management on GitLab and repository management in Visual Studio code
jigi33 27.04.2025
- repo management on GitLab - CI/ CD in GitLab - VCS repository management in Visual Studio code (see attachments)
Kanban или Scrum - что выбрать?
EggHead 27.04.2025
Kanban и Scrum — уже много лет удерживают лидирующие позиции среди гибких подходов. Руководители проектов и команды разработчиков то и дело сталкиваются с дилеммой: какой из этих двух методов выбрать. . .
Кастомные Middleware на C# в ASP.NET Core
UnmanagedCoder 27.04.2025
Разработка веб-приложений сегодня мало напоминает монолитное программирование прошлых лет. На смену громоздким блокам кода пришла модульная архитектура, где каждый компонент выполняет строго. . .
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru