Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 682

/ вопрос открыт /

Здравствуйте, эксперты!
Я столкнулся с одной прогой... Вы не могли бы мне помочь рассказать как она работает?

var n, k : integer;
begin

read(n);
k := 0;
while n <> 0 do
begin
k := k + n and 1;
n := n shr 1;
end;
writeln(1 shl k)
end.


Меня смущает эта строчка:k := k + n and 1;
Заранее спасибо!

Черняев Саша Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Черняев Саша (статус: Посетитель)
Вопрос отправлен: 24 января 2010, 19:58
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Паровоз

Здравствуйте, Черняев Саша!

Программа вычисляет число ненулевых битов в двоичном представлении числа n. С треугольником Паскаля это вряд ли связано.

Ответ отправил: Паровоз (статус: 10-ый класс)
Время отправки: 24 января 2010, 21:01
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 24 января 2010, 22:23; участников в обсуждении: 2.
Черняев Саша

Черняев Саша (статус: Посетитель), 24 января 2010, 19:59 [#1]:

Программа вычисляет количество нечетных чисел в n-ой строке треугольника Паскаля.
Паровоз

Паровоз (статус: 10-ый класс), 24 января 2010, 22:05 [#2]:

В цикле, число n каждый раз сдвинается на 1 вправо и выделяется самый младший бит. Таким образом, на k-м шаге получаем k-й двоичный разряд числа n. Для этого бита нет отдельной переменной. В переменной k они суммируются сразу. Инструкция k := k + n and 1 добавляет к сумме k, полученной на предыдущем шаге очередной бит (n and 1).
Черняев Саша

Черняев Саша (статус: Посетитель), 24 января 2010, 22:18 [#3]:

Спасибо за разьяснение! Это задача из командной лимпиаде Спб, а это решение жюри.
http://www.informatics.ru/viewproblem.php?problem_id=167&round_id=61
Черняев Саша

Черняев Саша (статус: Посетитель), 24 января 2010, 22:23 [#4]:

мне просто интересно, как это с треугольником паскаля связано...

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:29
Выполнено за 0.03 сек.