Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

уменьшение времени выполнения программы при использовании прямой рекурсии

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> уменьшение времени выполнения программы при использовании прямой рекурсии
Имя
Сообщение << Старые топики   Новые топики >>
уменьшение времени выполнения программы при использовании прямой рекурсии - 2012-05-09 21:18:26.953333   
mr.Reenz

Сообщений: 40
Оценки: 0
Присоединился: 2012-03-10 11:57:08.273333
Написал программу для вычисления числа согласно номеру в ряде чисел Фибоначчи.



#include <iostream>
#include <cstdlib>
using namespace std;
unsigned long int fib(int n);
int main()
{
int n;
unsigned long int answer;
cout<<"enter numer n: ";
cin>>n;
answer=fib(n);
cout<<answer<<" is the:"<<n<< "th fibonarchi number"<<endl;
system ("pause");
return 0;
}
unsigned long int fib(int n)
{
cout<<"processing fib(" <<n<< ")";
if (n<3)
{
cout<<"return 1"<<endl;
return 1;
}
else
cout<<"call fib (" <<n-2<< ") and fib (" <<n-1<< ")"<<endl;
return (fib(n-2)+fib(n-1));
}






Но при выполнении программы процессор нагружен на 30%. Сам процессор AMD 2 ядра по 2.2 ГГц, оперативы 1Гб.
Стоит 32 битная OC Windows XP.
Как задействовать всю мощь процессора при вычислении?
И еще вопрос. Какой можно использовать тип возвращаемого значения(побольше и не степенной) кроме unsigned long int для вывода результата?
P.S. использую прямую рекурсию.
Post #: 1
RE: увеличение вычислительной мощности процессора при использовании прямой рекурсии - 2012-05-09 21:21:06.546666   
mr.Reenz

Сообщений: 40
Оценки: 0
Присоединился: 2012-03-10 11:57:08.273333
Вместо **** использую тип L O N G. В листинге он у меня стоит но при копировании на форум почему то заменяется ****
Post #: 2
RE: увеличение вычислительной мощности процессора при использовании прямой рекурсии - 2012-05-10 02:04:52.856666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Откажись от рекурсии вообще. Рекурсия в с++ - очень затратная операция и достаточно редко она востребована.
Post #: 3
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> уменьшение времени выполнения программы при использовании прямой рекурсии







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.