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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Ravik
1 / 1 / 0
Регистрация: 24.06.2010
Сообщений: 55
#1

Время выполнения программы увеличивается, если добавить проверку - C++

01.04.2011, 20:15. Просмотров 1159. Ответов 10
Метки нет (Все метки)

я написал программу на перебор цикла из массива. И время её выполнения в данном примере занимает 5секунд, однако, если добавить 15 строку время увеличивается до 30 секунд. Вопрос почему?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
   system("PAUSE");
    const int k=10;
   int mass[k];long long int r=-11,v=100000000; int s=0;
   for( int i =0;i<10;i++)mass[i]=0;
    do{
             mass[k-1]++;
             s=0;
        while(mass[k-s-1]==10){mass[k-s-1]=0;s++;mass[k-s-1]++;}
        r++;
           // if(r%v==0)cout<<r<<endl;
}
while(mass[0]!=1);cout <<r<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2011, 20:15     Время выполнения программы увеличивается, если добавить проверку
Посмотрите здесь:

OpenMP. Время выполнения программы увеличивается с количеством потоков - C++
Задача: найти сумму максимальных элементов строк матрицы. Я составил код программы и распараллелил циклы. На компьютере вроде работает как...

Добавить код во время выполнения программы - C++
Возможно ли к программе подключать некоторые модули с кодом(заранее не откомпилированные) по мере её выполнения? Если да, то как?

Ошибка во время выполнения программы - C++
Здравствуйте, есть задача Дано два списка чисел, числа в первом списке упорядочены по неубыванию. Для каждого числа из второго списка...

Ошибка во время выполнения программы. - C++
Здравствуйте, помогите, пожалуйста, разобраться. Пытаюсь сдать задачу, из 27 тестов в трех - ошибка во время выполнения программы. ...

Посчитать время выполнения программы - C++
В среде visual studio 2012 можно? или в коде написать что нужно, подскажите

Уменьшить время выполнения программы - C++
#include &lt;iostream&gt; using namespace std; int main() { int n; cin &gt;&gt; n; char mas; int k;

Определить время выполнения программы - C++
Господа как засеч време выполнение программы? Заранее всем огромное спасибо!!!

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Unforgiven_00
60 / 60 / 2
Регистрация: 12.10.2010
Сообщений: 129
01.04.2011, 21:35     Время выполнения программы увеличивается, если добавить проверку #2
Цитата Сообщение от Ravik Посмотреть сообщение
cout<<r<<endl;
это занимает довольно много времени
Ravik
1 / 1 / 0
Регистрация: 24.06.2010
Сообщений: 55
01.04.2011, 22:28  [ТС]     Время выполнения программы увеличивается, если добавить проверку #3
не согласен, ну да ладно время вроде сам примерно понял)
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,731
01.04.2011, 22:34     Время выполнения программы увеличивается, если добавить проверку #4
деление не самая быстрая операция + вывод в поток
оптимизация очень интересная тема

Добавлено через 2 минуты
Со скобками ничего не напутано?
Ravik
1 / 1 / 0
Регистрация: 24.06.2010
Сообщений: 55
01.04.2011, 22:37  [ТС]     Время выполнения программы увеличивается, если добавить проверку #5
нет вроде, а в каком месте вы предполагаете ошибку?
вообще этот код должен был бы участвовать в возведение числе в степени 500 знаков, тысяча и так далее, но чувствую с таким кодом это займет месяц, можете что-нибудь посоветовать?
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,731
01.04.2011, 22:46     Время выполнения программы увеличивается, если добавить проверку #6
в 9 строке нет скобки
Цитата Сообщение от Ravik Посмотреть сообщение
for( int i =0;i<10;i++)mass[i]=0;
в 10 и 13 скобки Do While
в 16 должно быть закрывающая для Main
в 20 ?????
или я не увидел где то открывающую???

Не понял что во что возводим
Большое число в степень в какую
или число в большую степень?
Ravik
1 / 1 / 0
Регистрация: 24.06.2010
Сообщений: 55
01.04.2011, 22:49  [ТС]     Время выполнения программы увеличивается, если добавить проверку #7
в 9 строке я обнуляю массив(на всякий случай)
10 и 16 do while
а в 13 просто while с открытием и закрытием


возводим маленькое число в большую степень
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,731
01.04.2011, 22:49     Время выполнения программы увеличивается, если добавить проверку #8
и как ты собираешься записать число в 500 знаков
максимум который я знаю 2^64 намного меньше
дубль 10 в 308 по моему
свой класс создавать надо
Unforgiven_00
60 / 60 / 2
Регистрация: 12.10.2010
Сообщений: 129
01.04.2011, 22:49     Время выполнения программы увеличивается, если добавить проверку #9
Цитата Сообщение от ValeryS Посмотреть сообщение
в 9 строке нет скобки


или я не увидел где то открывающую???
В 13-й скобки вложеного while
Ravik
1 / 1 / 0
Регистрация: 24.06.2010
Сообщений: 55
01.04.2011, 22:52  [ТС]     Время выполнения программы увеличивается, если добавить проверку #10
используя обысный массив в "много элементов"
т.к. 2^5000 меньше чем 10^5000 можно с "небольшим" зазором взять массив в 5к элементов

Добавлено через 54 секунды
я нубь( классы изучить толком не могу
кроме как пользовательского типа в нем счастья не вижу((((
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2011, 22:59     Время выполнения программы увеличивается, если добавить проверку
Еще ссылки по теме:

Определить время выполнения программы - C++
Как узнать сколько выполняется программа на С++.Т.е. что бы со всеми результатами,скажем в конце, выводилось еще и ее время выполнения,...

Определить время выполнения программы - C++
В связи с доработкой алгоритма разных прог, иногда необходимо посмотреть на сколько повысилась производительность и уменьшилось время...

Определить время выполнения этой программы - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; int main() { std::string str; std::cout &lt;&lt; &quot;Type some text: &quot;; ...

Окно программы во время выполнения цикла - C++
Пока выполняется цикл в программе окно становится не доступным. Ни свернуть не переместить и тд. Как с этим бороться? Цикл запускается...

Вычисление выражение во время выполнения программы - C++
Есть строка типа String например ((A*B)*(C-B*3)-A)*С нужно вычислить это выражение, причем 'А' .. 'Z' переменные т.е. нужна функция...


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,731
01.04.2011, 22:59     Время выполнения программы увеличивается, если добавить проверку #11
Цитата Сообщение от Ravik Посмотреть сообщение
а в 13 просто while с открытием и закрытием
Не заметил
mass[k]
это и есть большое число результат???

Добавлено через 5 минут
В классах много пользы
все промежуточные вычисления можно спрятать чтоб снаружи не видно
переопределить операторы чтоб не мучатся (*/+-=)
возведение в степень это многократное умножение
реализуй быстрое умножение
например умножение на степень 2 сдвиг(обычно компилятор сам заменяет)
умножить 2^32 это переписать из одной ячейки в другую(левую)
Yandex
Объявления
01.04.2011, 22:59     Время выполнения программы увеличивается, если добавить проверку
Ответ Создать тему
Опции темы

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