Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2014, 19:41   #11
studentus1985
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 25
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
кокой-токой олгоритм-шмолгоритм?
Выше Рома][а наводил
вот он
Код:

r := 0;
cnt := 0;
for i := 1 to n do begin
Inc(r, i); r := r mod 3; if r = 0 then Inc(cnt)
end;
WriteLn(cnt)
studentus1985 вне форума Ответить с цитированием
Старый 21.10.2014, 19:44   #12
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
число делится на три если сумма цифр всех разрядов этого числа тоже делится на три
а, ну тогда всё просто. на каждом шаге сворачивать-считать сумму цифр числа, плюсовать к сумме от предыдущего шага и ещё раз свернуть до одной цифры и mod 3 её.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 21.10.2014, 19:54   #13
studentus1985
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 25
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а, ну тогда всё просто. на каждом шаге сворачивать-считать сумму цифр числа, плюсовать к сумме от предыдущего шага и ещё раз свернуть до одной цифры и mod 3 её.
да, согласен, но не уверен что весь интервал можно просчитать за 1 сек.(условия задачи)поэтому спрашиваю, может кто посоветует что нибудь побыстрее
studentus1985 вне форума Ответить с цитированием
Старый 21.10.2014, 21:48   #14
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Проверил, из 11 елементов последовательности которые есть в первом посте на 3 делятся только 4, но алгоритм говорит что их есть 7!
1(-),12(+),123(6)(+),1234(-),12345(15)(+),123456(+),1234567(-), 12345678(36+),123456789(45)(+),1234 5678910(-),1234 567891011(66)(+)...
Где ошибка?
Ответ 7
Poma][a вне форума Ответить с цитированием
Старый 21.10.2014, 21:56   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Решатели, обратите внимание на последовательность. В каждой тройке элементов начиная с 1-го на 3 делится 2-ой и 3-ий элемент и есть длина последовательности. Сколько на три делится?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.10.2014, 22:01   #16
studentus1985
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
1(-),12(+),123(6)(+),1234(-),12345(15)(+),123456(+),1234567(-), 12345678(36+),123456789(45)(+),1234 5678910(-),1234 567891011(66)(+)...
Где ошибка?
Ответ 7
Прошу прощения, перепроверил, действительно работает, но пока не разобрался как именно, все таки я думал будет код пообьемней, большое вам спасибо
studentus1985 вне форума Ответить с цитированием
Старый 21.10.2014, 22:05   #17
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А так
Код:
Count:=(n div 3)*2;
if n mod 3=2 then Inc(Count);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.10.2014, 22:06   #18
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Решатели, обратите внимание на последовательность. В каждой тройке элементов начиная с 1-го на 3 делится 2-ой и 3-ий элемент и есть длина последовательности. Сколько на три делится?
Мда.. Не заметил.. Спасибо..
Тогда (n+1) div 3 + n div 3?
Poma][a вне форума Ответить с цитированием
Старый 21.10.2014, 22:07   #19
studentus1985
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Решатели, обратите внимание на последовательность. В каждой тройке элементов начиная с 1-го на 3 делится 2-ой и 3-ий элемент и есть длина последовательности. Сколько на три делится?
наверное самый быстрый вариант, спасибо
studentus1985 вне форума Ответить с цитированием
Старый 21.10.2014, 22:07   #20
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Тогда (n+1) div 3 + n div 3?
Оно, у тебя еще короче
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы. Выбрать все значения, которые делятся нацело на 2 и 4, но не делятся на 6 MrRuslanBB Visual C++ 3 31.05.2013 22:27
как вывести числа которые делятся на 7? Devil669 Общие вопросы C/C++ 12 18.02.2013 00:32
Дан одномерный массив. Удалить все элементы последовательности значения,которые кратны k Кристюша5 Паскаль, Turbo Pascal, PascalABC.NET 4 27.05.2012 21:46
вывести на экран чила от 1 до N, которые делятся на 4 Сергей505 Паскаль, Turbo Pascal, PascalABC.NET 16 12.12.2011 14:25
Вывести на экран номера всех элементов, которые не делятся на 7 wrangler Общие вопросы C/C++ 5 10.12.2009 15:37