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

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

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

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 04.02.22 14:30. Заголовок: задание 14 №325


//11·1565 + 18·1538 – 14·1517 + 19·1511 + 18338
var x,s: Biginteger; begin
x:=11*Biginteger.Pow(15,65)+18*Biginteger.Pow(15,17)+19*Biginteger.Pow(15,11)+18338;
while x>0 do begin
s:=x mod 15 ;x:=x div 15;
writeln(s)
end;

end.
у меня получается 9 различных цифр, в ответе 10. Что не так

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


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




Сообщение: 3269
ссылка на сообщение  Отправлено: 04.02.22 14:54. Заголовок: Проверьте выражение ..


Проверьте выражение для x.

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 04.02.22 15:37. Заголовок: Спасибо, извините..


Спасибо, извините

Спасибо: 0 
Цитата Ответить





Сообщение: 161
ссылка на сообщение  Отправлено: 12.05.22 08:26. Заголовок: vin пишет: var x,s:..


vin пишет:

 цитата:
var x,s: Biginteger; begin
x:=11*Biginteger.Pow(15,65)+18*Biginteger.Pow(15,17)+19*Biginteger.Pow(15,11)+18338;
while x>0 do begin
s:=x mod 15 ;x:=x div 15;
writeln(s)
end;
end.


А на питоне, данное решение, выглядит более понятно:
 
#14.325_с буквами
# Автор: А.Л. Наймушин

x = 11*15**65 + 18*15**38 - 14*15**17 + 19*15**11 + 18338
m = set()
s = ''
while (x != 0):
s = str(x % 15)
if s == '10': s = 'A'
if s == '11': s = 'B'
if s == '12': s = 'C'
if s == '13': s = 'D'
if s == '14': s = 'E'
m.add(s)
x = x // 15
print('n = ',len(m),';',' m = ', m )

Предложенный алгоритм можно упростить, например так:
 
m = set()
a = ['A','B','C','D','E']
x = 11*15**65 + 18*15**38 - 14*15**17 + 19*15**11 + 18338
while x:
if (x % 15)>9: m.add(str(a[x%15-10]))
else: m.add(str(x%15))
x = x // 15
print('n = ',len(m),';',' m = ', m )

А если учесть, что отображать отдельные символы не требуется, то решение может быть еще проще и компактнее:
 
x = 11*15**65 + 18*15**38 - 14*15**17 + 19*15**11 + 18338
m = [15]*15
while x:
m[x % 15] = x % 15
x = x // 15
print(15-m.count(15))


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

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