В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
nstratonova
nstratonova
25.07.2021 04:57 •  Информатика

6. рядом с вами находятся две корзины. первая наполнена
яблоками разных размеров, вторая — пустая.
шаг 1. вы берёте любое яблоко из первой корзины и кладёте его на стол перед собой.
шаг 2. вы достаёте следующее яблоко из первой корзины и
выполняете сравнение:
если яблоко в руках больше, чем яблоко на столе, то вы
опускаете яблоко, которое у вас в руках, во вторую корзину;
— если яблоко в руках меньше яблока на столе, вы кладёте
яблоко на стол, аяблоко, которое лежало на столе, перекладываете во вторую корзину.
вы повторяете шаг 2 до тех пор, пока первая корзина не
опустеет.
какое яблоко окажется на столе в самом конце?
попытайтесь сформулировать, что является инвариантом цикла в алгоритме. сформулируйте условие с использованием терминологии, рассмотренной в этом
параграфе.

Показать ответ
Ответ:
gryzzly12
gryzzly12
21.08.2020 17:51
2^2018 в двоичной системе есть единица и 2018 нулей. 2018=2048-32+2
(исходное выражение трансформировалось в 2^2018-2048+32-2)
2048=2^11 (единица и 11 нулей)
32=2^5 (единица и 5 нулей)
2=10 :)
Для начала прибавлю к 2^2018 100000. Получится число, у которого (с конца) 5 нулей, затем единица, затем идут 2012 нулей и снова единица.
Теперь буду вычитать 2 т .е. 100...100000-10. Займу единицу с шестой с конца позиции. Будет 100...011110. Теперь нужно вычитать из этого числа 2^11. Последние 11 позиций не изменятся (вычитаются нули), а вот для вычета единицы потребуется "зянять" её у самой первой цифры числа. Если нарисовать последние 12 цифр исходного числа, картинка будет следующая: 
1...000000011110
-   100000000000

0...111111111110
Осталось узнать, сколько единичек стояло на месте многоточия. В 2^11 было 12 цифр, соответственно, получаем 2018-12=2006 позиций, на которых стоят нули. К этим позициям нужно добавить 11 единиц, которые видны в "столбике".
Итого 2006+11=2017 единиц\
P.S. если понятен принцип решения, советую перерешить еще раз, потому что у меня очень плохо с арифметикой. 

***
Есть очень хорошее свойство: некое десятичное число n^m в переводе в n-ичную систему счисления будет в этой системе счисления выглядеть как единица и m нулей. Свойство довольно очевидное: при переводе из десятичной системы в n-ичную мы исходное число будем делить на n, т.е. получим остаток от деления 0 и частное n^(m-1). И так будет продолжаться m раз, пока мы не разделим число само на себя и получим единицу в последнем частном. Отсюда 1 и m нулей.
0,0(0 оценок)
Ответ:
emmavalse
emmavalse
25.11.2021 13:11
Program Primer;
var
m,g:Integer;
begin
Write('Введите год: ');
ReadLn(g);
Write('Введите номер месяца: ');
ReadLn(m);
if (g mod 4=0) and (m=2)
then WriteLn('В феврале ',g,' года 29 дней')
else
case m of
1: WriteLn('В январе 31 день');
2: WriteLn('В феврале 28 дней');
3: WriteLn('В марте 31 день');
4: WriteLn('В апреле 30 дней');
5: WriteLn('В мае 31 день');
6: WriteLn('В июне 30 дней');
7: WriteLn('В июле 31 день');
8: WriteLn('В августе 31 день');
9: WriteLn('В сентябре 30 дней');
10: WriteLn('В октябре 31 день');
11: WriteLn('В ноябре 30 дней');
12: WriteLn('В декабре 31 день')
else WriteLn('Такого месяца не существует');
end;
end.
По заданному году g и номера месяца m определите количество дней в месяце. это нужно делать в паскал
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота