![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 31.08.2009
Сообщений: 161
|
![]()
здравстуйте, у меня появилась интересная задачка
условие: по массиву А длиной n составить другой массив В, где В[i] равен произведению всех элементов массива А за исключением A[i]. тоесть В[1] = A[2]*A[3]... B[2]=A[1]*A[3]... Решить нужно в сложности O(n); я её почти решил вот код: Код:
но, если один из элементов =0 то программа вылетает, (деление на 0) помогите доработать программку, хотя б намекните как, а то что-то никак не могу додуматься, + в сложности n |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
![]()
При первом проходе проверяете очередной array[i] на равенство 0 (и, заодно, подсчитываете к-во встреченный нулей в array[]. Если это 0, result для данного i наращивать не надо. Если счётчик нулей достиг двух - можно выходить из цикла: result уже вообще ни на что не повлияет.
Ну и во втором проходе логика чуть более разветвлённой становится... |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 31.08.2009
Сообщений: 161
|
![]()
спасибо
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сложности с запросом | Kolik317 | БД в Delphi | 5 | 19.08.2009 12:09 |
Сложности с вычислениями | Adlar | Microsoft Office Access | 0 | 23.06.2009 22:20 |
Задача по Паскалю. 1 уровень сложности. | Сергей1 | Помощь студентам | 2 | 19.11.2007 22:45 |