Автор | Сообщение |
|
Отправлено: 23.01.20 20:25. Заголовок: Егэ 21 ном.85
Сколько количество входных а должно быть на промежутке от 1 до 100, чтобы ответ был таким же, что и при а=20 Если х>1 то f=x mod 3 + f(x div 3) иначе f=x Если f(i)=2, то k=k+1 У меня получается ответ 12, а должно быть 10 Мои подходящие числа под а это от 18 до 29
| |
|
Ответов - 5
[только новые]
|
|
|
| Администратор
|
Сообщение: 1994
|
|
Отправлено: 23.01.20 20:31. Заголовок: GAF пишет: У меня по..
GAF пишет: цитата: | У меня получается ответ 12, а должно быть 10. Мои подходящие числа под а это от 18 до 29 |
|
Думаю, что вы сами можете ответить на свой вопрос. Напишите программу для проверки и попробуйте. Если приведенный ответ правильный, ищите ошибку у себя - есть пошаговое выполнение программы для отладки. Если выясните, что ваш ответ верный, напишите сюда с доказательством (например, с программой).
| |
|
|
Отправлено: 23.01.20 22:08. Заголовок: Ответ
Здравствуйте, GAF! цитата: | function f(x: integer): integer; begin if x >1 then f := x mod 3 + f(x div 3) else f := x; end; |
|
1) Функция f(x) находит сумму цифр числа x в троичной системе счисления. 2) Следовательно, в цикле цитата: | for i := 1 to a do if f(i) =2 then k:=k+1; |
| в интервале [1, a] ищется количество чисел, в которых в троичной системе счисления сумма цифр равна 2. В десятичной системе счисления это числа 2, 4, 6, 10, 12, 18, 28, 30, ... 3) При а=20, очевидно, k=6 (что соответствует числам 2, 4, 6, 10, 12, 18). Такой же результат будет получен для чисел 18, 19, 20, 21, 22, 23, 24, 25, 26, 27. Этих чисел 10. Для чисел 28 и 29 k=7. Ответ: 10.
| |
|
|
Отправлено: 27.01.20 18:37. Заголовок: все равно не пойму, ..
все равно не пойму, f(28)=4 и f(29)=5, значит же k остается равной 6 все еще
| |
|
|
Отправлено: 27.01.20 21:33. Заголовок: Ответ
Здравствуйте, GAF! Вы пишете: цитата: | все равно не пойму, f(28)=4 и f(29)=5, значит же k остается равной 6 все еще |
| Во-первых, f(28)=2, а f(29)=3 (это можно проверить на компьютере). Но начнем заново: 1) Функция f(x) находит сумму цифр числа x в троичной системе счисления. 1 10 = 1 3 --> f(1) = 1 2 10 = 2 3 --> f(2) = 2 3 10 = 10 3 --> f(3) = 1 4 10 = 11 3 --> f(4) = 2 5 10 = 12 3 --> f(5) = 3 6 10 = 20 3 --> f(6) = 2 7 10 = 21 3 --> f(7) = 3 8 10 = 22 3 --> f(8) = 4 9 10 = 100 3 --> f(9) = 1 10 10 = 101 3 --> f(10) = 2 и так далее. Видим, что f(i) = 2, если i = 2, 4, 6, 10. Еще f(i) = 2, если i = 12, 18, 28, 30, 36, ... (проверьте самостоятельно). (Понятно, надеюсь, что 2810 = 10013 --> f(28) = 2, а 2910 = 10023 --> f(29) = 3) Таким образом, f(i) = 2, если i = 2, 4, 6, 10, 12, 18, 28, 30, 36, ... 2) В цикле цитата: | for i := 1 to a do if f(i) = 2 then k:=k+1; |
| в интервале [1, a] ищется количество чисел, в которых в троичной системе счисления сумма цифр равна 2. Действительно, условие if f(i) = 2 "будет срабатывать", если i = 2, 4, 6, 10, 12, 18, 28, 30, 36, ... Но "а" будет ограничивать интервал: так при a=10 условие if f(i) = 2 "сработает" для чисел 2, 4, 6, 10 и k станет равно 4; при a=11 условие if f(i) = 2 "сработает" для чисел 2, 4, 6, 10 и k станет равно 4; при a=12 условие if f(i) = 2 "сработает" для чисел 2, 4, 6, 10, 12 и k станет равно 5; при a=7, 8, 9 условие if f(i) = 2 "сработает" для чисел 2, 4, 6 и k станет равно 3; 3) по условию задачи нужно найти количество чисел а, при которых условие if f(i) = 2 "сработает" столько же раз, сколько "срабатывает" для a=20. при a=20 условие if f(i) = 2 "сработает" 6 раз для чисел 2, 4, 6, 10, 12, 18 и k станет равно 6; Ясно, что число 18 должно войти в "подсчет", так как при a=17 k=5. Так как после 18 следующее число, дающее f(i)=2, равно 28 (i = 2, 4, 6, 10, 12, 18, 28, 30, 36, ...), то вместе с числом 18 подойдут и числа 19, 20, 21, 22, 23, 24, 25, 26, 27. Всего этих чисел 10. Число a=28 не подойдет потому, что при a=28 в цикле условие if f(i) = 2 "сработает" 7 раз для чисел i = 2, 4, 6, 10, 12, 18, 28 и k станет равно 7, а не 6. По той же причине не подойдет a=29.
| |
|
|
Отправлено: 28.01.20 12:04. Заголовок: Спасибо, извините. Я..
Спасибо, извините. Я f(9) неправильно посчитал
| |
|
|
|