Тема: Программистские головоломки. |
Кот Матроскин
Бывший океанец
Сообщений: 9822720
|
|
Кот Матроскин
Бывший океанец
Сообщений: 9822720
|
|
Кот Матроскин
Бывший океанец
Сообщений: 9822720
|
|
Kesha
Поручик
Сообщений: 1290
|
|
Кот Матроскин
Бывший океанец
Сообщений: 9822720
|
|
luno
Капитан 2го ранга
Сообщений: 3216
|
|
Кот Матроскин
Бывший океанец
Сообщений: 9822720
|
|
luno
Капитан 2го ранга
Сообщений: 3216
|
|
Кот Матроскин
Бывший океанец
Сообщений: 9822720
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
В мучительных потугах наткнулся на задачку со школьной олимпиады по программированию. Оказалась на редкость интересной, и что удивительно, действительно имеющей ценность с точки зрения техники программирования
Итак, задача:
На вход подяются 0 и 1 (не более 10 тысяч), определить, делится ли полученное после остановки входного потока двоичное число на 15.
|
---------------------- |
"Было бы величайшей ошибкой думать...",-В.И.Ленин
|
|
|
09 Марта 2006 19:39 |
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
Занимательный юморрр
Прочитать по ссылке, внести исправлени в поля, отмеченные синеньким, заполнить недостающие (отмеченные красненьким)...
Ограничения: предложить алгоритм выполнения поставленной задачи с верхней оценкой времени выполнения O(N*logN)
|
---------------------- |
"Было бы величайшей ошибкой думать...",-В.И.Ленин
|
|
|
15 Марта 2006 00:55 |
|
|
djvig
Капитан 1го ранга
Сообщений: 6718
|
Grossmutters_G пишет: В этой теме я бы очень хотел обратиться в первую очередь к инструменту программиста-разработчика - к языку программирования, на котором он ваяет свои шедевры.
Вот задачка первая, язык программирования "С":
Нижеприведенный кусок кода должен был выполнять следующие действия, а именно: выдать на экран 20 знаков "*"... Но в спешке, программист Вася вместо "++" после переменной i написал "--"...
Задача: исправить код так, чтобы он выполнял надлежащие ему действия путем замены или добавления (но не обоих ...
int i;
for(i=0;i
|
|
|
15 Марта 2006 00:59 |
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
|
Кот Матроскин
Бывший океанец
Сообщений: 9822720
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
|
Кот Матроскин
Бывший океанец
Сообщений: 9822720
|
Grossmutters_G пишет: Евклид заполнял свои манускрипты за время O(N*logN)? Или это ты про число?
нет я про алгоритм, это же модулярная арифметика, скажем
a^16 mod n = (((a^2 mod n)^2 mod n)^2 mod n)^2 mod n
отсюда получаем
ulong qe2(ulong x, ulong y, ulong n)
{
ulong s, t, u;
int i;
s=1; t=x; u=y;
while(u)
{
if(u&1)s=(s*t)%n;
u>>=1;
t=(t*t)%n
}
return (s);
}
частный случай из алгоритма Эвклида для нахождения наибольшего общего делителя. или я что то не учитываю?
|
|
|
15 Марта 2006 01:36 |
|
|
SID_DD
Поручик
Сообщений: 1945
|
|
Кот Матроскин
Бывший океанец
Сообщений: 9822720
|
|