Автор | Сообщение |
|
Отправлено: 02.04.18 07:28. Заголовок: 20 - 107 (106)
Добрый день! Подскажите, пожалуйста, как рассуждать в задачи 107? 107) (Д.Ф. Муфаззалов) Укажите количество двузначных натуральных чисел, при вводе которых приведенная ниже программа напечатает число, отличное от 0. var i, n: longint; begin i := 0; readln(n); while (n > 0) do begin i := i + n mod 9; n := n div 9; end; writeln(i mod 8); end. Спасибо.
|
|
|
Ответов - 3
[только новые]
|
|
|
| Администратор
|
Сообщение: 1614
|
|
Отправлено: 02.04.18 18:25. Заголовок: Fivel пишет: Подскаж..
Fivel пишет: цитата: | Подскажите, пожалуйста, как рассуждать в задачи 107? |
|
Попробуйте подумать в направлении девятеричной системы счисления.
|
|
|
|
Отправлено: 03.04.18 11:51. Заголовок: программа выдает 0,..
программа выдает 0, если i - это число кратное 8. Двузначных чисел у нас 90 штук. от 10 до 99 чисел кратных 8 - 11 штук. 90-11=79. Ответ 79. Такое рассуждение? Или нет?
|
|
|
|
| Администратор
|
Сообщение: 1617
|
|
Отправлено: 03.04.18 22:07. Заголовок: Fivel пишет: програм..
Fivel пишет: цитата: | программа выдает 0, если i - это число кратное 8. Двузначных чисел у нас 90 штук. от 10 до 99 чисел кратных 8 - 11 штук. 90-11=79. Ответ 79. Такое рассуждение? Или нет? |
|
Ну, почти. 1) В этой программе i - сумма цифр числа в девятеричной системе. 2) Пусть две цифры числа в девятеричной системе - a и b, то есть это число X = a*9 + b. Если a + b = k*8, то число равно X = a*9 + k*8 - a = a*8 - k*8, то есть оно делится на 8. 3) далее так, как вы написали.
|
|
|
|