Автор | Сообщение |
|
Отправлено: 29.03.21 04:53. Заголовок: Задание 14 №3675
Здравствуйте! Помогите разобраться с решением задачи 3675 (14 задание. Системы счисления) Нашла 2 цифры @ не могу найти 3-ю. Спасибо.
|
|
|
Ответов - 4
[только новые]
|
|
|
Отправлено: 29.03.21 16:34. Заголовок: Пономарева С.Г. пише..
Пономарева С.Г. пишет: цитата: | Помогите разобраться с решением задачи 3675 (14 задание. Системы счисления) |
| Вот если бы можно было увидеть еще и само условие...
|
|
|
|
| Администратор
|
Сообщение: 2643
|
|
Отправлено: 29.03.21 19:41. Заголовок: s11kai пишет: Вот ес..
s11kai пишет: цитата: | Вот если бы можно было увидеть еще и само условие... |
| Вот условие. На мой взгляд, эта задача под Python или BigInteger в ПаскалеABC. Теоретическое решение сложновато. x = 100**2 + 625**25 + 5**100 cnt = 0 while x: if x % 15 == 12: cnt += 1 x //= 15 print(cnt)
|
|
|
|
Отправлено: 29.03.21 23:13. Заголовок: Пономарева С.Г. пише..
Пономарева С.Г. пишет: цитата: | Нашла 2 цифры @ не могу найти 3-ю |
| А я прочитал: "Нашла 2 цифры, собака не могу найти 3-ю" С целью своей реабилитации, предлагаю к рассмотрению алгоритм с использованием строковых символов, правда он менее компактный чем у Константина Юрьевича, но вдруг кому пригодится: x =100**2+625**25+5**100 st = '' while x: if x%15<10: st = str(x%15) + st else: if x%15 == 14: st = '*'+ st if x%15 == 13: st = '$'+ st if x%15 == 12: st = '@'+ st if x%15 == 11: st = '#'+ st if x%15 == 10: st = '№'+ st x //=15 print('st = ',st)
|
|
|
|
Отправлено: 30.03.21 06:06. Заголовок: Для тех кто любит ми..
Для тех кто любит поиграться с кодом, идею получения числа в указанной системе счисления можно оптимизировать, например, так: x =100**2+625**25+5**100 s =['№','#','@','$','*'] st = '' while x: if x%15 < 10:st = str(x%15) + st else:st = s[x%15 - 10] + st x //=15 print('st = ',st)
|
|
|
|