Автор | Сообщение |
|
Отправлено: 09.02.21 14:48. Заголовок: Задача 5 номер 215
Нашла два числа 508 и 805. Не могу найти ещё 2. В ответе 4 числа
|
|
|
Ответов - 7
[только новые]
|
|
|
| Администратор
|
Сообщение: 2410
|
|
Отправлено: 09.02.21 15:32. Заголовок: AnnaPershina пишет: ..
AnnaPershina пишет: 580 и 850.
|
|
|
|
Отправлено: 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)
|
|
|
|
| Администратор
|
Сообщение: 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 )
|
|
|
|
Отправлено: 07.03.22 21:46. Заголовок: Спасибо!..
Спасибо!
|
|
|
|
Отправлено: 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)
|
|
|
|
Отправлено: 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) Прошу прощения, пришлось вернуться к вложенным циклам
|
|
|
|
Отправлено: 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)
|
|
|
|