Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/58: Рейтинг темы: голосов - 58, средняя оценка - 4.88
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918

Определить наименьшее основание системы счисления для числа

09.12.2020, 05:19. Показов 12872. Ответов 12

Студворк — интернет-сервис помощи студентам
Всем привет! Нужно решить задачку на питоне. Важно, что списки использовать нельзя, функции тоже. "Половину" я уже сделал, определил основания обоих чисел. Дальше не могу без списков и функций. Вставляю свой код

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
s = input()
 
k = 0
 
i = 0
for char in s:
    if(i == 0):
        max = ord(char)
    i += 1
i = 0
for char in s:
    if(ord(char) > max):
        max = ord(char)
if max >= 49 and max <= 57:
    answ = max - 47
else:
    answ = max - 54
 
s1 = input()
 
k = 0
 
i = 0
for char in s1:
    if(i == 0):
        max1 = ord(char)
    i += 1
i = 0
for char in s1:
    if(ord(char) > max):
        max1 = ord(char)
if max1 >= 49 and max1 <= 57:
    answ1 = max1 - 47
else:
    answ1 = max - 54
Тут answ - основание первого числа, answ1 - второго числа. Почти на 100 процентов уверен в том, что работает))) Помогите, пожалуйста!
Условие задачи:

Не всякое число может являться записью в данной системе счисления. Например, 123 не может быть числом ни в двоичной, ни в троичной системе. Наименьшее основание системы счисления, в которой может быть записано это число – четыре.

Напишите программу, которая это и будет определять.

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

Гарантируется, что основания разные и не превышают 10.

Формат ввода
Два целых положительных числа.

Формат вывода
Целое число.

Пример 1
Ввод Вывод
123
214
102
Пример 2
Ввод Вывод
192
10010
18
Примечания
В задаче нельзя использовать списки, методы и функции.


Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.12.2020, 05:19
Ответы с готовыми решениями:

Чему равно наименьшее основание системы счисления
мне нужно написать код, который найдет чему равно наименьшее основание системы счисления, допустим (x), при котором 225(система...

Чему равно наименьшее основание позиционной системы счисления
Чему равно наименьшее основание позиционной системы счисления x, при котором 225x = 405y? Ответ записать в виде целого числа. x и y...

Определите основание системы счисления
Значение арифметического выражения: N^25 — 2*N^13 + 10 записали в системе счисления с основанием N. С помощью python определите основание...

12
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
09.12.2020, 08:30
Цитата Сообщение от alilxxey Посмотреть сообщение
Наименьшее основание системы счисления
Python
1
2
n = int(input())
print(max(map(int, str(n))) + 1)
1
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
09.12.2020, 09:16  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
print(max(map(int, str(n))) + 1)
нельзя же использовать списки) или я чего то не догоняю?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
09.12.2020, 09:44
Python
1
2
3
4
5
6
7
def foo(x:int)->int:
   maxx = 1
   while x>0:
       if x%10 > maxx:
           maxx = x%10
       x /= 10
   return maxx+1
1
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
09.12.2020, 10:11  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
def foo(x:int)->int:
   maxx = 1
   while x>0:
       if x%10 > maxx:
           maxx = x%10
       x /= 10
   return maxx+1
нельзя функции использовать! Не понял вообще смысл кода. Можно пояснение?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
09.12.2020, 10:30
Функция возвращает минимальную степень счисления
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
09.12.2020, 10:31  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Функция возвращает степень минимальную счисления
так я ж уже написал расчет минимальной системы счисления, нужно теперь вторую часть задачи сделать
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
09.12.2020, 11:58
Лучший ответ Сообщение было отмечено alilxxey как решение

Решение

alilxxey,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
a = input()
b = input()
ssa = ssb = '0'
for i in a :
    if i > ssa:
        ssa = i 
for j in b:
    if j  > ssb:
        ssb = j 
if ssb<ssa:
    ssa, ssb = ssb, ssa
    a, b = b, a 
ssa = int(ssa) + 1
ssb = int(ssb) + 1
 
# вторая часть #
tmp = 0
for i in a:
    tmp = int(i) + tmp * ssa
a_b = ''
while tmp > 0:
    a_b = str(tmp % ssb) + a_b
    tmp = tmp // ssb
print(a_b)
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.12.2020, 12:23
если ввести ноль видимо минимальное основание СС это единица
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
09.12.2020, 12:38  [ТС]
Цитата Сообщение от eaa Посмотреть сообщение
если ввести ноль видимо минимальное основание СС это единица
ну по сути же да) просто не предусмотрен этот случай, а так да, по сути это единичная система счисления)

Добавлено через 2 минуты
Цитата Сообщение от Gdez Посмотреть сообщение
a = input()
b = input()
ssa = ssb = '0'
for i in a :
    if i > ssa:
        ssa = i
for j in b:
    if j  > ssb:
        ssb = j
if ssb<ssa:
    ssa, ssb = ssb, ssa
    a, b = b, a
ssa = int(ssa) + 1
ssb = int(ssb) + 1
# вторая часть #
tmp = 0
for i in a:
    tmp = int(i) + tmp * ssa
a_b = ''
while tmp > 0:
    a_b = str(tmp % ssb) + a_b
    tmp = tmp // ssb
print(a_b)
Спасибо большое! По тестирующей системе Яндекс.Лицея задача оценена на 9.7/10. Не знаю куда делись еще 0.3 балла, решение вроде бы даже идеальное.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
09.12.2020, 12:40
Лучший ответ Сообщение было отмечено alilxxey как решение

Решение

alilxxey, вместо последнего принта попробуй
Python
1
2
3
if a_b == '':
    a_b = 0
print(a_b)
1
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
09.12.2020, 13:10  [ТС]
Цитата Сообщение от Gdez Посмотреть сообщение
alilxxey, вместо последнего принта попробуй
вы просто гениальны.... Подправил там немного по РЕР8, соединил воедино и получил 10 баллов) Спасибо вам огромное, что бы я без вас делал)

Gdez решил задачу, прикрепляю финальную версию работающей на 10/10 программы:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
a = input()
b = input()
ssa = ssb = '0'
for i in a:
    if i > ssa:
        ssa = i 
for j in b:
    if j > ssb:
        ssb = j 
if ssb < ssa:
    ssa, ssb = ssb, ssa
    a, b = b, a 
ssa = int(ssa) + 1
ssb = int(ssb) + 1
 
# вторая часть #
tmp = 0
for i in a:
    tmp = int(i) + tmp * ssa
a_b = ''
while tmp > 0:
    a_b = str(tmp % ssb) + a_b
    tmp = tmp // ssb
    
if a_b == '':
    a_b = 0
print(a_b)
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
09.12.2020, 13:16
alilxxey, последняя гениальность не моя.
А так
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2020, 13:16
Помогаю со студенческими работами здесь

Найти основание системы счисления
На вход подаётся число 210 (с основанием СС = 5), это же число с n-ым основанием имеет вид 313, найти основание n. Думал просто...

Для заданного целого числа k найти наименьшее основание p системы счисления
Для заданного целого числа k найти наименьшее основание p системы счисления, в которой представление числа k не содержит нулей. Напечатать...

Для данного целого k найти наименьшее основание p системы счисления, где представление числа k не имеет нулей
Для заданного целого числа k найти наименьшее основание p системы счисления, в которой представление числа k не содержит нулей. Напечатать...

Для целого k найти наименьшее основание системы счисления, в которой представление k не содержит нулей
Помогите, пожалуйста решить задачу, заранее спасибо!!!:) Для заданного целого числа k найти наименьшее основание p системы...

Наименьшее основание позиционной системы счисления
Наименьшее основание позиционной системы счисления X, при котором 123 с основанием x = 146 с основанием y,равно... С подробным решением...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru