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

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

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

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



Сообщение: 36
ссылка на сообщение  Отправлено: 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

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


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




Сообщение: 1994
ссылка на сообщение  Отправлено: 23.01.20 20:31. Заголовок: GAF пишет: У меня по..


GAF пишет:
 цитата:
У меня получается ответ 12, а должно быть 10. Мои подходящие числа под а это от 18 до 29

Думаю, что вы сами можете ответить на свой вопрос. Напишите программу для проверки и попробуйте. Если приведенный ответ правильный, ищите ошибку у себя - есть пошаговое выполнение программы для отладки. Если выясните, что ваш ответ верный, напишите сюда с доказательством (например, с программой).

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





Сообщение: 267
ссылка на сообщение  Отправлено: 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.

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



Сообщение: 37
ссылка на сообщение  Отправлено: 27.01.20 18:37. Заголовок: все равно не пойму, ..


все равно не пойму, f(28)=4 и f(29)=5, значит же k остается равной 6 все еще

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





Сообщение: 269
ссылка на сообщение  Отправлено: 27.01.20 21:33. Заголовок: Ответ


Здравствуйте, GAF!

Вы пишете:

 цитата:
все равно не пойму, f(28)=4 и f(29)=5, значит же k остается равной 6 все еще


Во-первых, f(28)=2, а f(29)=3 (это можно проверить на компьютере).

Но начнем заново:

1) Функция f(x) находит сумму цифр числа x в троичной системе счисления.

110 = 13 --> f(1) = 1
210 = 23 --> f(2) = 2
310 = 103 --> f(3) = 1
410 = 113 --> f(4) = 2
510 = 123 --> f(5) = 3
610 = 203 --> f(6) = 2
710 = 213 --> f(7) = 3
810 = 223 --> f(8) = 4
910 = 1003 --> f(9) = 1
1010 = 1013 --> 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.

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



Сообщение: 39
ссылка на сообщение  Отправлено: 28.01.20 12:04. Заголовок: Спасибо, извините. Я..


Спасибо, извините. Я f(9) неправильно посчитал

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

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