![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Задача
Дано n - целое. Последовательность сост. из степеней 10 - ки (110100100010000....). Определить какая цифра находиться на n позиции последовательности. Вообщем не прошу исходного кода( на Ваше усмотрение ), прошу помочь найти закономерность(алгоритм). Из того, что я увидел: 1. Можно через строки, но ведь должен быть другой способ!? 2. Нашел зависимость, связанную с ариф. прогрессией, т.е. 1 - ы стоят на 0,1,3,6 позициях, но не пойму как реализовать... --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Ln78 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 25.11.2006 Репутация: нет Всего: 15 |
Сумма членов арифметической прогрессии, в данном случае: k*(k+1)/2. Выяснить, представляется ли заданное n в таком виде. Возможны, например, такие варианты: 1. Просто в цикле увеличиваем переменную k, рассчитываем k*(k+1)/2 и сравниваем с n. Если равно - единица, если меньше - продолжаем цикл, если больше - заканчиваем цикл, считаем, что там нуль. 2. Цикл заменить расчётом квадратного корня из 2*n, взять целую часть от этого корня, т.е. k = int(sqrt(2.0*n)). Если k*(k+1) = 2*n - единица, иначе - нуль. |
|||
|
||||
ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
feodorv, Спасибо!
Ln78, Спасибо ![]() ![]() --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
Это тема должна находиться в разделе Алгоритмы.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
Ln78 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 25.11.2006 Репутация: нет Всего: 15 |
||||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Как рассуждал Гаусс-школьник: напишем ряд чисел от 1 до N в строчку, а под ним ещё один - от N до 1, число под числом:
Нетрудно заметить, что сумма двух чисел в столбце - всегда N+1, столбцов - N, поэтому сумма чисел в двух рядах - N*(N+1), а в одном ряду - N*(N+1)/2 (поскольку ряды совпадают, только записаны в противоположных порядках)... Это сообщение отредактировал(а) feodorv - 27.10.2012, 11:39 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
feodorv, Спасибо!
![]() ![]() ![]() Добавлено через 12 минут и 33 секунды Ребята ![]() --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Поэтому k ~= sqrt(2*n) ![]() -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |