Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/352: Рейтинг темы: голосов - 352, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 13

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

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

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

Условие задачи:
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
1732 / 970 / 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
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 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
1732 / 970 / 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
1732 / 970 / 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru