Форум » Системы счисления » №4124 » Ответить

№4124

Елена0787: d=81**18-(81**8-1)*(9**8+1)/8-8 count=0 while d!=0: if d%3==1: count+=1 d=d//3 print(count) выводит 17, а в ответах 15. что не так?

Ответов - 5

Елена0787: упс, №4125

romad: Выводит правильный ответ% 15 x = 81**18 - (81**8-1)*(9**8+1)//8 - 8 k = 0 while x >0: if x % 3 == 1: k += 1 x //=3 print(k) Деление надо было нацело делать

Zarema_Sokhova: romad пишет: Здравствуйте! Почему деление нацело, в условие про это не сказано?


cabanov.alexey: Почему деление нацело, в условие про это не сказано? Потому что при обычном делении вы меняете тип числа на вещественный и алгоритм перебора цифр даёт сбой

Zarema_Sokhova: cabanov.alexey пишет: Потому что при обычном делении вы меняете тип числа на вещественный и алгоритм перебора цифр даёт сбой Да, я это понимаю. Т.е. в условие четко сказано: ----- 311) (А. Богданов) Значение выражения 81**18 – (81**8 – 1)∙((8 + 1)**8 + 1) / 8 – 8 записали в системе счисления с основанием 3. Найдите количество единиц в этой записи. ----- т.е. сначала надо убедиться, что ответ целое число. А если бы значение выражения было бы не целым числом, что вполне возможно при делении?



полная версия страницы