Форум » Циклы и ветвления » [B6] Циклы в B6 » Ответить
[B6] Циклы в B6
Elen@: Здравствуйте! Вопрос по задаче 11: 11) В результате выполнения фрагмента программы while n <> 0 do begin write ( 2*(n mod 5 + 3) ); n := n div 10; end; на экран выведено число 10614. Какое число хранилось до этого в переменной n, если известно, что все цифры в нем нечетные? Находим остатки от деления n на 5 - 2-0-4. Без проблем собираем число 402. Но по условию - все числа нечетные. У Вас в ответе - 957. Как вы решали эту задачу?
Ответов - 13
Elen@: Уже сама догадалась - просто к каждой цифре числа 402 надо прибавить 5. Вот и получилось 957. Хорошо, когда есть ответы !
Поляков: Elen@ пишет: просто к каждой цифре числа 402 надо прибавить 5 Вы нашли остатки от деления на 5, поэтому прибавлять нужно какое-то число, делящееся на 5. Для того, чтобы получилось однозначное число (ведь это цифра!), можно добавить 0 или 5. Но все остатки - чётные, а по условию все цифры должны получиться нечетные. Поэтому единственный вариант - добавить 5 к каждому полученному остатку.
Elen@: 2User Я решала так: 1) n mod 5 – остаток от деления на 5 – число от 0 до 4. 2) Минимальное число, которое может быть напечатано - 2(0+3)=6 3) Максимальное – 2(4+3)=14 4) Поэтому запись 10614 могла быть получена при печати 10-6-14 5) Находим остатки от деления: Последний – 2*(n mod 5+3)=10, n mod 4=2 Второй – 2*(n mod 5+3)=6, n mod 5=0 Первый – 2*(n mod 5+3)=14, n mod 5=4 6) Собираем число – 402. 7) А дальше Поляков пишет: Вы нашли остатки от деления на 5, поэтому прибавлять нужно какое-то число, делящееся на 5. Для того, чтобы получилось однозначное число (ведь это цифра!), можно добавить 0 или 5. Но все остатки - чётные, а по условию все цифры должны получиться нечетные. Поэтому единственный вариант - добавить 5 к каждому полученному остатку. Получили 957.
User: Здравствуйте. А можно поподробнее разобрать данный пример, а то я что-то "не догоняю". Спасибо.
Поляков: User пишет: А можно поподробнее разобрать данный пример, а то я что-то "не догоняю". Пожалуйста сформулируйте вопрос - что именно непонятно.
User: спс, разобрался
Ashot_RM: А наподобие этой задачи больше нет? хочется потренироваться, а то сам не сразу понял как делать..
Поляков: Ashot_RM пишет: А наподобие этой задачи больше нет? С большой вероятностью можно считать, что столь сложных задач не будет. Это только для тренировки мозгов, «тяжело в учении - легко в бою». Будет время - добавлю.
Вася:
Вася: а число 357 подходит или нет?
oval: Вася пишет: а число 357 подходит или нет? Наберите программу и проверьте
Вася: Почему не подходит?
oval: 2*(3 mod 5 +3) не равно 10
полная версия страницы