![]() |
|
|
![]()
|
|
| ziga |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 25.4.2007 Репутация: нет Всего: 1 |
Задача такая берётся число например 17 (оно может быть любым) для него надо создать 2хмерный массив, для числа 17 он должен быть таким:
х х х х х х х х х х х х х х х х х 0 0 0 х - заполнено 0 - пусто Сама задача заключается в том, что бы определить размер массива зная число, я собираюсь это делать так: взять две переменные x, y которые равны x=2, y=1 и циклом проверять если x * y < 17 то x = x + 1, y = y + 1 И так пока не будет выполнено условие, мне кажется, что это не самый лучший вариант может есть какие идеи получше? |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: нет Всего: 149 |
[AttrDefID] А по какому принципу для 17 массив будет 4*5?
Судя по
получаем правило: число строк на 1 меньше числа столбцов. Тогда легко можно получить формулу: X -- число строк, A -- входной параметр (17). Задача, найти наименьшее X для которого выполняется X * (X+1) > A X^2 + X - A > 0 D = 1 + 4A X_1,_2 = (-1 +-sqrt(D))/2 Неравенству удовлетворяют числа (-oo;X_1) или (X_2; +oo) (X_2 -- с плюсом) Тогда искомое число будет наименьшее целое число не меньшее X_2: X_2 (когда X_2 целое) и [X_2] +1, когда нет. Все вместе: (-1 + sqrt(1+4A))/2, если это выражение целое Число строк= [(-1 +sqrt(1 + 4A)/2] + 1, если нет. Это сообщение отредактировал(а) ivashkanet - 30.7.2007, 14:46 |
|||
|
||||
| ziga |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 25.4.2007 Репутация: нет Всего: 1 |
Спасибо
|
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |