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

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

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

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



Сообщение: 6
ссылка на сообщение  Отправлено: 08.10.21 13:05. Заголовок: Задание 316


{
316) (П. Волгин) Значение выражения 8^20 + ((8^22 – 8^17) · (8^13 + 8^16))
записали в системе счисления с основанием 8. Затем в восьмеричной
записи этого числа все цифры 7 заменили на 0, а цифры в разрядах
0, 1 и 2 удалили. Найдите сумму цифр восьмеричной записи числа
после изменения. Ответ запишите в десятичной системе счисления.
}
//PascalABC.Net
uses School;

begin
var a:BigInteger:=8;
var b:BigInteger:=0;
var sum:BigInteger:=0;
var x:=a**20 + ((a**22 - a**17) * (a**13 + a**16)) ;
while x<>0 do
begin
b:=x mod 8;
case StrToInt(b.ToString) of
7,1,2,0 : b:=0;
end;
sum+=b;
x:=x div 8;
end;
sum.print;

У меня получается 6, а в ответах 8. Не могу понять, где ошибка?

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





Сообщение: 7
ссылка на сообщение  Отправлено: 08.10.21 16:38. Заголовок: Ключева фраза "ц..


Ключева фраза "цифры в разрядах 0, 1 и 2 удалили" скорректировал в программе:
 
uses School;
begin
var a:BigInteger:=8;
var b:BigInteger:=0;
var sum:=0;
var s:='';
var x:=a**20 + ((a**22 - a**17) * (a**13 + a**16)) ;
while x<>0 do
begin
b:=x mod 8;
if b = 7 then
s:='0'+s
else
s:=b.ToString+s;
x:=x div 8;
end;
s.Println;
Delete(s,s.Length-3,3);
s.println;
x:=BigInteger.Parse(s);
s:=x.ToString;
s.Println;
for var i:=1 to s.Length do
sum+=s[ i].ToDigit;
sum.Println;
end.


Теперь все корректно! Ответ 8.

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





Сообщение: 51
ссылка на сообщение  Отправлено: 11.10.21 20:16. Заголовок: Питон


 
s = 0
n = 8**20 + ((8**22 - 8**17)*(8**13+8**16))
n = n//8**3 # убираем 3 младших разряда, но можно этого и не делать - изанализа выражения очевидно, что в восьмеричном числе много младших нулевых разрядов, которые на сумму не влияют
while n >0:
if n%8 != 7:
s += n%8
n//=8
print (s)


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



Сообщение: 12
ссылка на сообщение  Отправлено: 19.10.21 00:07. Заголовок: На Youtube разбор этого задания:

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 29.03.22 11:53. Заголовок: Задание 316


Здавствуйте, не получается получить в ответе 8, программа выдает 7. Помогите пожалуйста с решением.

{
316) (П. Волгин) Значение выражения 8^20 + ((8^22 – 8^17) · (8^13 + 8^16))
записали в системе счисления с основанием 8. Затем в восьмеричной
записи этого числа все цифры 7 заменили на 0, а цифры в разрядах
0, 1 и 2 удалили. Найдите сумму цифр восьмеричной записи числа
после изменения. Ответ запишите в десятичной системе счисления.
}

n = 8**20 + ((8**22 - 8**17) * (8**13 + 8**16)) что выводит код
n = oct(n)[2:] #100076777000000000100000000000000000000
n = n.replace('7', '0') #100006000000000000100000000000000000000
n = n[3:] #006000000000000100000000000000000000
print(sum(map(int, n))) #7

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




Сообщение: 3422
ссылка на сообщение  Отправлено: 30.03.22 12:05. Заголовок: Карина пишет: n = n ..


Карина пишет:
 цитата:
n = n[3:]

Вы удалили старшие 3 разряда, а нужно младшие. Разряды в записи числа нумеруются справа налево.

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 13.11.22 11:30. Заголовок: Ын


x = 8**20 + ((8**22 - 8**17) * (8**13 + 8**16))
x = abs(x)
sm = 0
while x > 0:
d = x % 8
if d == 7:
d == 0
sm += 1
x //= 8
print(sm)
как удалить разряды чисел? у меня ответ выводит 4..

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




Сообщение: 3775
ссылка на сообщение  Отправлено: 14.11.22 10:02. Заголовок: Sofia пишет: как уда..


Sofia пишет:
 цитата:
как удалить разряды чисел?

Вам нужно удалить разряды 0, 1 и 2. Можно при суммировании просто считать их нулевыми.

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

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