Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.73
Zalik
2 / 2 / 0
Регистрация: 24.05.2010
Сообщений: 94
#1

Найти сумму первых элементов массива, произведение которых не превышает заданного числа М - C++

15.03.2012, 17:40. Просмотров 3215. Ответов 44
Метки нет (Все метки)

Имеется последовательность чисел a1, a2, ... ,aN, образована по правилу аi=random(N). Найти сумму первых из них (считая слева направо), произведение которых не превышает заданного числа М.
Очень прошу помочь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2012, 17:40     Найти сумму первых элементов массива, произведение которых не превышает заданного числа М
Посмотрите здесь:

Вычислить произведение элементов массива S, значение которых не больше заданного негативного числа C++
Вычислить произведение элементов массива S, значение которых не больше заданного негативного числа C++
C++ Найти максимальную сумму чисел, произведение которых не превышает заданного числа.
Вычислить и вывести произведение первых 7 элементов массива и сумму следующих 7 элементов находящихся на четных позициях C++
C++ В матрице А (mxn) найти найти сумму элементов по колонкам, значения которых по модулю меньше заданного числа К
C++ Найти количество элементов массива, значения которых положительны, и не больше заданного числа
C++ Найти произведение элементов массива, результат умножения цифр которых больше заданного К
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,430
18.03.2012, 10:57     Найти сумму первых элементов массива, произведение которых не превышает заданного числа М #41
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- однако посмотри на скрин а также компиляцию этого алгоритма
И ты серьезно думаешь, что эти 10 итераций будут выполняться дольше, чем одна секунда, чтобы ты успел увидеть разницу? Для наглядности можно сделать простую задержку (использовалась юниксовая функция sleep):
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
 
int main(void)
{
    size_t i;
 
    for(i = 0; i < 10; ++i, sleep(1))
    printf("%zd\n", time(NULL));
    
    exit(0);
}
И получаем ожидаемый результат:
Найти сумму первых элементов массива, произведение которых не превышает заданного числа М

Я ведь уже советовал прочитать документацию. Функция time возвращает число секунд, прошедших с начала Эпохи (01.01.70). Если переданный ей аргумент не равен NULL, то time просто записывает по этому адресу свое возвращаемое значение. Т.е. если мы имеем
C
1
2
time_t t1, t2;
t1 = time(&t2);
то будет соблюдаться равенство t1 = t2. А это значит, что по сути переданный функции time аргумент вообще никак не влияет на возвращаемое значение
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,430
18.03.2012, 11:00     Найти сумму первых элементов массива, произведение которых не превышает заданного числа М #42
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- в catch ветвь не заходим. Я и писал что студия линкует без генерации bad_alloc
просто студия в этом плане не придерживается стандарта, только и всего. Чтобы студия «линковала без генерации bad_alloc», должна была бы существовать отдельная версия линкуемого бинарника стандартной библиотеки. А так студия просто не поддерживает этот аспект стандарта
-=ЮрА=-
Заблокирован
Автор FAQ
18.03.2012, 11:01     Найти сумму первых элементов массива, произведение которых не превышает заданного числа М #43
Nameless One, да я уже поправился ещё до твоего ответа, дело тут не в time а в bad_alloc

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Грешным делом подумал вдруг за 10-ть итераций time(NULL) не успевает изменить возвращаемое значение И запустил тест 100 тыс http://codepad.org/cCwx2uLg
2309 1332053092
2310 1332053093
да тик уже виден, про time(NULL) вопрос снял, однако за bad_alloc всё в силе
Читай мои посты полностью а вообще что обсуждать у тебя линукс и GNU а у меня Windows и Studio, конструктивно говорить с тобой не выходит всегда я у тебя идиотом слыву, ок...
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,430
18.03.2012, 11:03     Найти сумму первых элементов массива, произведение которых не превышает заданного числа М #44
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Читай мои посты полностью
а я их и читаю полностью. Просто когда я начинал писать то сообщение, твоего ответа я не видел

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
у тебя линукс и GNU а у меня Windows и Studio
к вопросу о time это отношения никакого не имеет

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
конструктивно говорить с тобой не выходит всегда я у тебя идиотом слыву, ок...
тебя никто не заставлял делать утверждения, которые заведомо не соответствуют истине
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2012, 11:07     Найти сумму первых элементов массива, произведение которых не превышает заданного числа М
Еще ссылки по теме:

Найти сумму элементов массива значения которых меньше заданного числа C++
Найти произведение первых трех элементов массива, больших заданного числа C++
Найти n первых простых чисел, сумма цифр у которых меньше заданного числа C++
Найти произведение элементов массива, больше заданного числа А C++
C++ Найти в массиве количество четных чисел, сумма цифр в которых не превышает заданного числа P

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,430
18.03.2012, 11:07     Найти сумму первых элементов массива, произведение которых не превышает заданного числа М #45
Тема скатилась в офтоп, все интересные подробности мы для себя уже выяснили, за сим я ее и закрываю
Yandex
Объявления
18.03.2012, 11:07     Найти сумму первых элементов массива, произведение которых не превышает заданного числа М
Закрытая тема Создать тему
Опции темы

Текущее время: 23:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru