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

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

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

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 07.11.15 18:34. Заголовок: Задание 21 - 66


Здравствуйте! Подскажите, как делать такого типа задания(в разборе их нет)?
На ваш взгляд, есть ли вероятность, что такое тяжелое задание ( по сравнению с предыдущим будет в реальном экзамене)?
Спасибо!
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Напишите в ответе количество различных значений входной переменной a из интервала от 1000 до 2000 (включая границы), при которых программа выдаёт тот же ответ, что и при входном значении a = 1111. Значение a = 1111 также включается в подсчёт различных значений a:
var a, i, k: integer;
function f(x: integer): integer;
var m: integer;
begin
if x < 10 then f := x
else begin
m := f(x div 10);
if m < x mod 10 then
f := x mod 10
else
f := m;
end;
end;
begin
k := 0;
readln(a);
for i := 1000 to a do
if f(i mod 100) = 1 then
if f(i div 100) = f(i mod 100) then
k := k + 1;
writeln(k);
end.


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


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




Сообщение: 956
ссылка на сообщение  Отправлено: 11.12.15 07:15. Заголовок: teraquote пишет: По..


teraquote пишет:
 цитата:
Подскажите, как делать такого типа задания(в разборе их нет)?

Некоторые идем:
1) заметим, что для заданного отрезка [1000,2000] функция f() вызывается только с аргументами, меньшими 100
2) нужно понять, что делает с таким аргументом функция f(), что она возвращает; в домашней обстановке можно прогнать эту функцию для всех x от 1 до 100, посмотреть на результаты, и потом разобраться в коде
3) дальше анализируем цикл в основной программе: когда сработают оба условных оператора = когда увеличивается счетчик.
 цитата:
есть ли вероятность, что такое тяжелое задание ( по сравнению с предыдущим будет в реальном экзамене)

Не думаю, что такая задача будет. Но для тренировки (домашнего разбора) - самое то.

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

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