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

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

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

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



Сообщение: 1
ссылка на сообщение  Отправлено: 08.04.13 11:20. Заголовок: способ решения B2


В результате фрагмента программы:
while n<>0 do begin
writeln (2*(n mod 5 + 3));
n:=n div 10;
end.
на экране выведено число 10614. какое число хранилось до этого в переменной n, если известно, что все цифры в нем нечетные?
Решение:
1) прежде всего, заметим, что для вывода используется оператор write, который не переходит на следующую строку; поэтому числа в цикле будут выводиться в одной строке "вплотную" друг другу, без промежутков.
2) вспомним, что n mod 5 - остаток от деления числа на 5 - этопоследняя цифра числа в десятичной системе счисления, то есть 4. можно определить наибольшее число, которое выведет программа после первого круга : 2(n mod5 + 3)=2 * (4+3) = 14;
3) операция n div 10 (деление нацело на 10) равносильна отбразыванию последней цифры в десятичной системе счисления
4) эти две операции выполняются пока значение переменной n не станет равно нулю
5) определим разбивку выведенного числа 10614. Существует единственная разбивка : 10 6 14. Значит, выполняя операцию
(2*(n mod 5)+3), последовательно получаем числа 10, 6, 14;
6) первое число 10 получаем :
2 * (n mod 5 +3) = 10,
n mod 5 = 2,
откуда n равняется 2 и 7, но в условии сказано, что все цифры числа нечетные. Значит последняя цифра числа 7;
7) Аналогично получаем другие две цифры:
2 * (n mod 5 +3) = 6,
n mod 5 = 0,
n = 5 - вторая цифра числа;
2 * (n mod 5 + 3) = 14,
n mod 5 = 4,
n=9 - первая цифра числа;
8) Таким образом, ответ 957


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


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

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