Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

01.04.2011, 20:15. Просмотров 1175. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2011, 20:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Время выполнения программы увеличивается, если добавить проверку (C++):

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

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

Время выполнения программы - C++
Здравствуйте.Я до сих пор новичок в программировании,сразу скажу,и тонкостей не знаю. Собрал я тут программу с использованием CUDA.И...

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

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

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

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

Добавлено через 2 минуты
Со скобками ничего не напутано?
0
Ravik
1 / 1 / 0
Регистрация: 24.06.2010
Сообщений: 55
01.04.2011, 22:37  [ТС] #5
нет вроде, а в каком месте вы предполагаете ошибку?
вообще этот код должен был бы участвовать в возведение числе в степени 500 знаков, тысяча и так далее, но чувствую с таким кодом это займет месяц, можете что-нибудь посоветовать?
0
ValeryS
Модератор
6708 / 5117 / 482
Регистрация: 14.02.2011
Сообщений: 17,194
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 ?????
или я не увидел где то открывающую???

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


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


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

Добавлено через 54 секунды
я нубь( классы изучить толком не могу
кроме как пользовательского типа в нем счастья не вижу((((
0
ValeryS
Модератор
6708 / 5117 / 482
Регистрация: 14.02.2011
Сообщений: 17,194
01.04.2011, 22:59 #11
Цитата Сообщение от Ravik Посмотреть сообщение
а в 13 просто while с открытием и закрытием
Не заметил
mass[k]
это и есть большое число результат???

Добавлено через 5 минут
В классах много пользы
все промежуточные вычисления можно спрятать чтоб снаружи не видно
переопределить операторы чтоб не мучатся (*/+-=)
возведение в степень это многократное умножение
реализуй быстрое умножение
например умножение на степень 2 сдвиг(обычно компилятор сам заменяет)
умножить 2^32 это переписать из одной ячейки в другую(левую)
0
01.04.2011, 22:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2011, 22:59
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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