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

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

Войти
Регистрация
Восстановить пароль
 
Toshik_
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
#1

Как оптимизировать код? - C++

28.08.2013, 18:18. Просмотров 468. Ответов 9
Метки нет (Все метки)

Как оптимизировать код, чтобы работала программа быстрее
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
 
int fib(int);
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int countFib;
    ifstream in("INPUT.TXT");
    in >> countFib;
    ofstream out("OUTPUT.TXT");
 
    for (int i = 0; i < countFib; i++)
    {
        
        if (i % 10 == 0 && i > 0)
            cout << endl;
        fib(i);
        if(fib(i)==countFib){
            out << '1' << '\n' << i+1;
            break;}
        else {
            if(i==countFib-1){
            ifstream po("OUTPUT.TXT");
            int z;
            po >> z;
            if(z==1 || z=='\0') break;
            else {
             out << '0';
             break;
            }
            }
        
        }
        
}
 
    cout << endl;
    system("pause");
    return 0;
}
 
 
int fib(int n)          //функция возвращает n-ое число Фибоначчи
{
     if (n == 0)
         return 0;
     if (n == 1) 
         return 1;
     else return fib(n - 1) + fib(n - 2);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2013, 18:18     Как оптимизировать код?
Посмотрите здесь:

Как оптимизировать код? - C++
Вот такой код, написанный для микроконтроллера импульсного блока питания. Просто интересно мнение, что можно поменять и изменить для...

Как можно оптимизировать данный код? - C++
И... Ещё один вопрос: Дан участок кода С++: #include &lt;iostream&gt; #include &quot;Windows.h&quot; using namespace...

Как оптимизировать код, со множеством операторов if? - C++
Можно ли сделать так, чтобы проверка обрабатывалась только тогда, когда нужно чтобы она проверила условие. while ( 1 ) { //...

Наследование классов как можно оптимизировать код и условие - C++
Создал два класса родительский монстр и наследный демон. у демона появляется значение разум и условие сила+жизни+разум&lt;=200. Силу и жизнь...

Как оптимизировать данный код игры крестики нолики? - C++
Привет всем! Я написал консольную игру &quot;Крестики нолики&quot;. Хочу посоветоваться как можно оптимизировать игру. Вот исходный код: ...

Оптимизировать код - C++
Первое число входного потока - количество чисел Дальше идут те самые числа Надо найти кол-во пар чисел, для которых выполняется nums &lt;=...

Оптимизировать код - C++
Доброго времени суток, как можно оптимизировать код что бы он быстрее работал ? Дана последовательность из n чисел a1, a2,..., an. C...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,737
28.08.2013, 18:26     Как оптимизировать код? #2
Цитата Сообщение от Toshik_ Посмотреть сообщение
fib(i);
* * * * if(fib(i)==countFib)
два раза вызываешь функцию зачем?
Цитата Сообщение от Toshik_ Посмотреть сообщение
for (int i = 0; i < countFib; i++)
* * {
if (i % 10 == 0 && i > 0)
остаток от деления дорогого стоит
введи еще одну переменную
например так
C++
1
2
3
4
5
6
7
8
9
10
int tmp=10;
for (int i = 0; i < countFib; i++)
{
   if (!tmp)
    {
     cout << endl;
    tmp=10;
    }
   else
     tmp--;
Toshik_
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
28.08.2013, 18:36  [ТС]     Как оптимизировать код? #3
Цитата Сообщение от ValeryS Посмотреть сообщение
два раза вызываешь функцию зачем?
остаток от деления дорогого стоит
введи еще одну переменную
например так
C++
1
2
3
4
5
6
7
8
9
10
int tmp=10;
for (int i = 0; i < countFib; i++)
{
   if (!tmp)
    {
     cout << endl;
    tmp=10;
    }
   else
     tmp--;
Дело в том что если ввести число Фибоначи тогда быстро выполняется программа, а так она зависает...
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
28.08.2013, 18:45     Как оптимизировать код? #4
Сохранять промежуточное значение вычислений, а не вычислять элемент последовательности заново.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
class FibonacciSequence {
 public:
  FibonacciSequence(long long first, long long second) : first(first), second(second) {}
  long long advance() {
    second = first + second;
    first = second - first;
    return first;
  }
 private:
  long long first, second;
};
 
int main(int, char**) {
  FibonacciSequence s(0, 1);
  int count = 55;
  for (int i = 0; i < count; ++i) {
    std::cout << s.advance() << std::endl;
  }
}
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
28.08.2013, 20:48     Как оптимизировать код? #5
Зачем вообще что-то вычислять? Чисел Фибоначчи, меньших 264, всего 94 штуки.
salam
162 / 143 / 12
Регистрация: 10.07.2012
Сообщений: 725
28.08.2013, 21:21     Как оптимизировать код? #6
что эта чудесная программа должна делать?
zer0mail
2330 / 1956 / 192
Регистрация: 03.07.2012
Сообщений: 7,013
Записей в блоге: 1
28.08.2013, 21:42     Как оптимизировать код? #7
Цитата Сообщение от salam Посмотреть сообщение
что эта чудесная программа должна делать?
Во-о-о-т (наконец-то), с этого ТС следовало начинать!
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
29.08.2013, 17:41     Как оптимизировать код? #8
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Зачем вообще что-то вычислять? Чисел Фибоначчи, меньших 264, всего 94 штуки.
Согласен. Самый быстрый способ - lookup table.
ValeryS
29.08.2013, 18:05
  #9

Не по теме:

Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Чисел Фибоначчи, меньших 2 64, всего 94 штуки.
интересно предыстория этого вопроса
исследовалось увеличение популяции кроликов, если учесть что через месяц они начинают спариваться и через месяц рождают еще одну пару

получается что меньше чем восемь лет кроликов будет больше чем 264 пар (это же ужас), что Австралия и получила

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2013, 18:19     Как оптимизировать код?
Еще ссылки по теме:

Исправить и оптимизировать код - C++
нужна помощь по исправлению ошибок Написал программу она работает все отлично но препод сказал что она не очень красивая Помогите...

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

Нужно оптимизировать код - C++
Вобщем код не принемает сайт, немного нагружает и по времени не проходит задание Август и Беатриса играют в игру. Август загадал...

Оптимизировать и минимализировать код - C++
Cделал легкую прогу. Понимаю логики 0 в коде. Можете помочь оптимизировать код? А заодно и сделать код более минималистичным. #include...

Помогите оптимизировать код - C++
Здравствуйте! Помогите, пожалуйста, оптимизировать его: main.cpp #include &quot;main.h&quot; ...


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

Или воспользуйтесь поиском по форуму:
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
29.08.2013, 18:19     Как оптимизировать код? #10
Замени рекурсию на цикл с сохранением предыдущих чисел. Тогда тебе не надо будет постоянно пересчитывать заново.
Yandex
Объявления
29.08.2013, 18:19     Как оптимизировать код?
Ответ Создать тему
Опции темы

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