avva: (Default)
[personal profile] avva
Вот еще одна задачка для программистов. Если знаете ответ, не пишите. Комментарии скрывать не буду; советую попробовать решить самостоятельно, до того, как подсматривать чужие ответы - красивая штука.

Дано 64-битное число x. Мы делаем с ним следующее (в псевдокоде):

accum = 0
do 64 times:
  accum += x
  x = x rot 1
end


Здесь rot - вращение числа на один разряд влево (выходящий слева бит становится вправо). И accum, и x - 64-битные числа без знака; при сложении мы отбрасываем бит переноса, если он образуется.

Вопросы: 1) что мы получаем? 2) почему это так получается?

Date: 2008-01-14 06:22 am (UTC)
From: [identity profile] itman.livejournal.com
Тьфу ты елки, первая из задачек Аввы, которую я решил правильно и за 5 секунд. В действительности, если просуммировать все полученные числа и взять остаток по модулю два, то ответ получается еще быстрее :-)

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 01:28 am
Powered by Dreamwidth Studios