Условие
По данному натуральному n ≤ 9 выведите лесенку из n ступенек, i-я ступенька состоит из чисел от 1 до i без пробелов.
Решение
n = int(input()) for i in range(1, n + 1): for j in range(1, i + 1): print(j, sep='', end='') print()
Комментарии
Добавить комментарий Отменить ответ
ЕГЭ на соточку для чайников
Прошу прощения, что так долго пропадал. Питошка вернулся, да еще и с группой в вконтакте, подписывайтесь. Помимо этого, на питошке откроется новая рубрика, в которой будут четкие объяснения всех заданий ЕГЭ и ОГЭ по информатике, внимательно прочитав которые, я уверен, вы улучшите свои баллы на экзамене
Лесенка из чисел
Нужно написать програму, которая принимает 1 аргумент — число от 1 до 9 (включительно)
Программа должна делать лесенку из чисел от 1 до 9.
Словами не могу объяснить, вот пример выполнения:
Введите число от 1 до 9 : 4
1
12
123
1234
1 2 3 4 5 6 7 8 9 10 11 12
n = int(input("Введите число от 1 до 9 : ")) if n > 9 or n 1 : print("Еrrоr") else: pass ui = 1 while ui != n : print(ui) ui += 1
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Лесенка
всем привет. Прошу помощи ньюбу Не вижу ошибку Напишите программу, которая по введённому числу.
Лесенка
Лесенкой называется набор кубиков, в котором каждый более верхний слой содержит кубиков меньше, чем.
Лесенка
Вова стоит перед лесенкой из N ступеней. На каждой из ступеней написаны произвольные целые числа.
Лесенка
Лесенка Вова стоит перед лесенкой из N ступеней. На каждой из ступеней написаны произвольные целые.
Лесенка
Вова стоит перед лесенкой из N ступеней. На каждой из ступеней написаны произвольные целые числа.
1040 / 575 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1

Сообщение было отмечено Valman229 как решение
Решение
кто вас учил так код писать?)
1 2 3 4 5 6 7 8 9
n = int(input("Введите число от 1 до 9 : ")) if n > 9 or n 1 : print("Еrrоr") else: s = '' for i in range(1, n+1): s += str(i) print(s)
Задача «Лесенка» на Python
Вова стоит перед лесенкой из ступеней. На каждой из ступеней написаны произвольные целые числа. Первым шагом Вова может перейти на первую ступень или, перепрыгнув через первую, сразу оказаться на второй. Так же он поступает и дальше, пока не достигнет -ой ступени. Посчитаем сумму всех чисел, написанных на ступенях через которые прошёл Вова. Требуется написать программу, которая определит оптимальный маршрут Вовы, при котором, шагая, он получит наибольшую сумму. Входные данные В первой строке содержится натуральное число — количество ступеней лестницы (2≤≤1000). Во второй строке через пробел заданы числа, написанные на ступенях лестницы, начиная с первой. Числа, написанные на ступенях, не превосходят по модулю 1000 Выходные данные Выведите наибольшее значение суммы. Мой код проходит 48 тестов из 50, а затем выдает ошибку. Помогите, пожалуйста, найти ошибку Сам код:
n = int(input()) a = [0] + list(map(int, input().split())) dp = ['']*(n+1) dp[0] = 0 dp[1] = a[1] def F(n): if dp[n] != '': return dp[n] if n < 2: return dp[n] dp[n] = max(F(n-1)+a[n], F(n-2)+a[n]) return dp[n] print(F(n))
- python
- динамическое-программирование
Отслеживать
задан 6 авг 2022 в 20:00
little_spaceman little_spaceman
43 2 2 серебряных знака 6 6 бронзовых знаков
1) Какой алгоритм использован? (что-то ваш простовато выглядит, возможно, по времени вылетаете). 2) Какая ошибка написана по результатам теста? 3) ССылку на тест дайте здесь, пожалуйста. Что за сайт?
6 авг 2022 в 20:05
Сама задача из acmp.ru
6 авг 2022 в 20:06
В Питоне по умолчанию ограничение на 1000 рекурсивных вызовов. docs.python.org/3/library/sys.html#sys.setrecursionlimit
6 авг 2022 в 20:33
@Сергей, "я натыкался" - не аргумент. Аргумент - сравнение времен рекурсивного и итеративного варианта или сравнение времен input c sys.stdin.readline . Я предполагаю что вы не сможете получить никакой значимой разницы на этой задаче. В моих тестах все варианты работают 25ms - время загрузки интерпретатора в память.
6 авг 2022 в 20:52
@4500zenja, нет, не оттуда. Задача такая, но формат вывода там другой. Откуда угодно может быть, например, на stepic она же и с правильным выводом, но там вообще все тесты проходят кода из вопроса, вообще без исправлений.
7 авг 2022 в 11:16
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Ваш алгоритм работает хорошо. Проблема с глубиной рекурсии:
$ (echo 100 ; seq -s ' ' 100) | python stairs.py 5050 $ (echo 1000 ; seq -s ' ' 1000) | python stairs.py Traceback (most recent call last): File "/home/sv/desk/stackoverflow/temp.py", line 16, in print(F(n)) File "/home/sv/desk/stackoverflow/temp.py", line 13, in F dp[n] = max(F(n-1)+a[n], F(n-2)+a[n]) File "/home/sv/desk/stackoverflow/temp.py", line 13, in F dp[n] = max(F(n-1)+a[n], F(n-2)+a[n]) File "/home/sv/desk/stackoverflow/temp.py", line 13, in F dp[n] = max(F(n-1)+a[n], F(n-2)+a[n]) [Previous line repeated 995 more times] File "/home/sv/desk/stackoverflow/temp.py", line 9, in F if dp[n] != '': RecursionError: maximum recursion depth exceeded in comparison
По условиям задачи в лесенке не более 1000 ступенек. В Питоне глубина рекурсии ограничена как раз тысячей вызовов. Совпадение. Что бы исправить, добавьте в начало вашего кода вызов sys.setrecursionlimit:
import sys sys.setrecursionlimit(2000) .
$ (echo 1000 ; seq -s ' ' 1000) | python stairs.py 500500
P.S. Заметьте что следующее значение F(n) зависит только от пары предыдущих - F(n - 1) и F(n - 2) . Можно обойтись без массива dp . Последовательная обработка поступающих чисел и поддержание в кеше двух последних значений:
input() # пропустить строку, она не нужна a = 0 b = 0 for c in map(int, input().split()): a, b = b, max(a, b) + c print(b)
P.P.S. предыдущий код всё равно расходует много памяти. Во-первых input() читает целиком строку, во-вторых split() создаёт список слов тоже целиком. В ограничениях задачи это не важно - не более 1000 чисел во второй строке. Но хочется написать алгоритм работающий в константной памяти. Например в C это был бы самый естественный код. Но не в Питоне в котором нет удобного способа читать из входного потока слова, не строки целиком. Исправляем: read_words читает слова по одному используя буфер фиксированного размера (если нет очень длинных слов, в этом случае буфер растягивается). С такой читалкой алгоритм становится действительно потоковым:
import string import sys def read_words(): READ_SIZE = 1024 WS = str.maketrans(string.whitespace, ' ' * len(string.whitespace)) tail = '' while True: block = sys.stdin.read(max(READ_SIZE, len(tail))).translate(WS) if len(block) == 0: yield from tail.split() return text = tail + block last_ws = text.rfind(' ') if last_ws == -1: tail = text continue yield from text[:last_ws].split() tail = text[last_ws:] input() a = 0 b = 0 for c in map(int, read_words()): a, b = b, max(a, b) + c print(b)
Теперь можно обрабатывать лесенки из миллиардов ступенек в постоянной памяти.
Ещё раз - это просто упражнение для ума. Всё что вам действительно нужно от этого ответа - ослабить ограничение на глубину рекурсии. 🙂
Задача Лестница чисел (Python)

Пользователь вводит число N. Напишите программу, которая по этому числу выводит вот такую лестницу из чисел:
Голосование за лучший ответ
for i in range(n + 1):
for j in range(i, n + 1):
print(j, end=' ')
print()
РоманУченик (147) 5 месяцев назад
а как сделать наоборот от меньшего к большему
n = int(input()) + 1
for i in range(n): print(*range(i, n))
working right code
size = int(input('Input the number: '))
for row in range(size + 1): #number of rows
for col in range(row, size + 1): #number of columns, start from number of row
print(col, end = '\t') #print number of column
print() #next line
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
