На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 1
ссылка на сообщение  Отправлено: 09.02.21 14:48. Заголовок: Задача 5 номер 215


Нашла два числа 508 и 805. Не могу найти ещё 2. В ответе 4 числа

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 7 [только новые]


Администратор




Сообщение: 2410
ссылка на сообщение  Отправлено: 09.02.21 15:32. Заголовок: AnnaPershina пишет: ..


AnnaPershina пишет:
 цитата:
Не могу найти ещё 2.

580 и 850.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 41
ссылка на сообщение  Отправлено: 04.03.22 04:26. Заголовок: Здравствуйте! Подска..


Здравствуйте! Подскажите, пож., в чем ошибка? В задачах 212, 213 этот алгоритм дает правильный ответ.

 for i in range(100, 1000):  
a = str(i)[0]
b = str(i)[1]
c = str(i)[2]
max_i = max(int(a), int(b), int(c))
min_i = min(int(a), int(b), int(c))
av_i = int(a) + int(b) + int(c) - max_i - min_i
i_max = str(max_i) + str(av_i)
i_min = str(min_i) + str(av_i)
if int(i_max) - int(i_min) == 14 and i_min[0] != '0' and i_max[0] != '0':
print(i)


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 3354
ссылка на сообщение  Отправлено: 06.03.22 13:09. Заголовок: TARGET = 35 count =..


 TARGET = 35 
count = 0
for x in range(100, 1000):
s = sorted( str(x) )
if s[0] == '0':
if s[1] == '0':
mi = ma = int(s[2]+'0')
else:
mi = int( s[1] + '0' )
ma = int( s[2] + s[1] )
else:
mi = int( s[0] + s[1] )
ma = int( s[2] + s[1] )
R = ma - mi
if R == TARGET:
print( x )
count += 1

print( count )


___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 42
ссылка на сообщение  Отправлено: 07.03.22 21:46. Заголовок: Спасибо!..


Спасибо!

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 355
ссылка на сообщение  Отправлено: 22.03.23 05:01. Заголовок: А Поляков пишет: TA..


А Поляков пишет:
 

 цитата:
TARGET = 35
count = 0
for x in range(100, 1000):
s = sorted( str(x) )
if s[0] == '0':
if s[1] == '0':
mi = ma = int(s[2]+'0')
else:
mi = int( s[1] + '0' )
ma = int( s[2] + s[1] )
else:
mi = int( s[0] + s[1] )
ma = int( s[2] + s[1] )
R = ma - mi
if R == TARGET:
print( x )
count += 1

print( count )

Красиво!

Но можно чуточку короче, и понятнее, если избавится от вложенных условий, например так:
 
k = 0
for x in range(100, 1000):
s = sorted( str(x) )
if s.count('0') == 2: ma = mi = int(s[2]+'0')
if s.count('0') == 1: mi = int(s[1]+s[0])
else: mi = int( s[0] + s[1] )
ma = int( s[2] + s[1] )
if ma - mi == 35:
k+=1
print(k)


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 359
ссылка на сообщение  Отправлено: 22.03.23 14:36. Заголовок: подумал, что, когда ..


подумал, что, когда получаем два нолика, будет правильнее не присваивать минимальному значение максимального, а просто не обрабатывать данный случай. Программа при этом может выглядеть как то так:
 
k = 0
for x in range(100, 1000):
s = sorted( str(x) )
if s.count('0') != 2:
if s.count('0') == 1: mi = int(s[1]+s[0])
else: mi = int( s[0] + s[1] )
ma = int( s[2] + s[1] )
if ma - mi == 35:
k+=1
print(k)

Прошу прощения, пришлось вернуться к вложенным циклам

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 360
ссылка на сообщение  Отправлено: 22.03.23 14:41. Заголовок: Затупил, если случай..


Затупил, если случай с двумя ноликами не обрабатывать, то какой смысл его вообще рассматривать!
 
k = 0
for x in range(100, 1000):
s = sorted( str(x) )
if s.count('0') == 1: mi = int(s[1]+s[0])
else: mi = int( s[0] + s[1] )
ma = int( s[2] + s[1] )
if ma - mi == 35:
k+=1
print(k)


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 140
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет