Найти - Пользователи
Полная версия: Циклическая задача
Начало » Центр помощи » Циклическая задача
1 2
sl0w
Доброе время суток

Решаю уже несколько дней задачу, связанную с циклами, вроде все верно, но в то же время где то затаилась ошибка. Прохожу курс, и ответы надо отправлять для проверки. Хотелось бы понять в чем вообще моя ошибка.

Сама задача:



Код решения:

r = int(input())
n = 0 #переменная показывающая последнюю цифру +1
q = 0 #переменная задающая последнюю цифру
s=''
if r == 1:
    print(1)
else:
    while r > len(s)-1*r:
        while q >= n:
            s+= (str(n)+' ')*n
            n+=1
        q += 1
u=s[0:r+r*1]
for i in u:
    print(i,end='', sep = '' )
Vlad_Ki
Добрый день. Я бы воспользовался функцией range()
к примеру
def ol(number):
	string = ""
	count = 0
	for n in range(number):
		if n ==0:
			continue
		for i in range(n):
			string += (str(n)+" ")
			count +=1
			if count == number:
				string = string.rstrip(" ")
				return (string)
				break
    
py.user.next
Уже было
Уже было
sl0w
большое спасибо , однако все же не понятно в чем у меня ошибка

либо это не у меня ошибка, а у программы верификации ответа ?
Vlad_Ki
А что именно Вас не устраивает в Вашей программе?
sl0w
исключительно то что она не проходит верификацию, а так - вроде работает как нужно, хоть и кривато написана
Vlad_Ki
sl0w
исключительно то что она не проходит верификацию, а так - вроде работает как нужно, хоть и кривато написана
Ну это весьма спорный вопрос. Я не могу сказать почему Ваша программа не проходит где - то верификацию. Возможно есть условия, которые Вы упустили из виду. Почитайте темы, которые рекомендует py.user.next
py.user.next
Уже было
Уже было
Возможно там кроется ответ.
FishHook
Vlad_Ki
Не знаю, кто там и что верифицирует, но я бы автора вот такого решения побоялся бы допускать до настоящей задачи
	for n in range(number):
		if n == 0:
			continue
Vlad_Ki
FishHook

Осознал. Учту.
Спасибо
Слава богу людей в космос я не запускаю!)
Пока еще
Vlad_Ki
Пока внимал замечание от FishHook
озарился
def op(r):
	n = 0 #переменная показывающая последнюю цифру +1
	q = 0 #переменная задающая последнюю цифру
	s=''
	while r > len(s)-r:
		while q >= n:
			s+= (str(n)+' ')*n
			n+=1
		q += 1
	u=s[0:r+r]
	return(u)

Отдельное условие для единицы было лишним тк и так все корректно работало, да и к тому же еще выводило пустую строку после строки с единицей тк у вас в коде еще есть
u=s[0:r+r*1]
for i in u:
    print(i,end='', sep = '' )

Потом зачем итерироваться по строке для того что бы вывести ее символы в таком же порядке в одну строку?
И умножение числа на единицу равно тому же самому числу. Так что
while r > len(s)-1*r:
=
while r > len(s)-r:
и
u=s[0:r+r*1]
=
u=s[0:r+r]


This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB