Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 05.01.2011
Сообщений: 25
1

Как раелизовать вычисление субфакториала на си, чтобы не переполнялся стек?

18.05.2011, 18:27. Показов 2312. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
собственно вопрос
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2011, 18:27
Ответы с готовыми решениями:

Вычисление субфакториала заданного числа
как в питоне вычислить субфакториал заданного числа n? Добавлено через 6 минут Мне кажется вот...

при работе рекурсивной функции заканчивается стек и программа соответственно; как сделать так, чтобы она писала "стек закончился"?
Сабж g++ 4.5.0

Как заполнить бинарное дерево, чтобы оно не превратилось в обычный стек
вот допустим написал заполнение данных в виде бинарного дерева, и в слуае если данные записываются...

Стек. Что добавить в код, или как изменить его, чтобы в нём были структуры ?
Программа выводит второй стек, состоящий из положительных элементов первого стека. Преподаватель...

8
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
18.05.2011, 20:13 2
А что вам стек? Итеративно уже вычислять не айс? Формула простая, цикл простой.
0
152 / 150 / 44
Регистрация: 09.02.2010
Сообщений: 407
18.05.2011, 20:23 3
trebor, Вы наверное имели ввиду, чтобы не переполнялся тип int? используйте long long int.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
18.05.2011, 20:31 4
Или длинную арифметику, чтоб наверняка (если вопрос был действительно об этом).
0
1 / 1 / 0
Регистрация: 05.01.2011
Сообщений: 25
05.06.2011, 17:28  [ТС] 5
Дело в том что я сделал функцию вычисления рекурсивной, и на небольших числах она работает нормально, но куда я сдаю не проходит по лимиту памяти. Может подскажете, как ее переделать с помощью итерации?
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2011, 17:47 6
C++
1
2
3
4
5
6
unsigned long long mypow(int a,int b){
    int temp=a;
    while (--b)
        a*=temp;
    return a;
}
Вообще факториал должен очень быстро вычисляться, скорее всего он просто не влазит в int.
P.S. не на acmp.ru сдаете случаем?
...
Тьфу
Не то совсем выложил
Извиняюсь

Добавлено через 13 минут
Вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
long double fact(int a){
    long double b=1;
    for (int i=1; i <=a;i++)
        b*=i;
    return b;
}
int main(){
    int a,b;
    std::cin >> a ;
    std::cout << (unsigned long long)((fact(a)+1)/2.7182818284590452);
    return 0;
}
От !19 начинает немного неправильно считать, т.к. константа неточная.
0
1 / 1 / 0
Регистрация: 05.01.2011
Сообщений: 25
05.06.2011, 18:06  [ТС] 7
Мерси.Да на acmp.А где вы про эту связь прочитали?
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2011, 19:16 8
Википедия=)
А что за задача на acmp с субфакториалом? Я решал там только на обычный факториал о_О
1
1 / 1 / 0
Регистрация: 05.01.2011
Сообщений: 25
05.06.2011, 20:07  [ТС] 9
задача #31.Неподвижные точки.Её просто можно ещё с помощью перебора решить, вот вы наверное так и сделали.Спасибо.
Я кстати когда смотрел не заметил её на википедииПросто эти скобочки, квадритики иногда в смятение вводят
0
05.06.2011, 20:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2011, 20:07
Помогаю со студенческими работами здесь

Стек. Что добавить в код, или как изменить его, чтобы в нём были структуры ?
Программа выводит второй стек, состоящий из положительных элементов первого стека. Преподаватель...

Раелизовать медиаплеер на visualstudio желательно 2005
Ребятки, помогите, нужно реализовать медиаплеер на visualstudio желательно 2005. Хочется, чтобы...

Стек cmd содержит комманды; как сделать так, чтобы эти команды выполнялись в отдельных потоках?
Стек cmd содержит комманды. Нужно сделать так, чтобы эти команды выполнялись в отдельных потоках....

Возможно ли раелизовать вот такую textarea с кнопкой?
кнопка находится внутри текстарии, должна нажиматься ну и текст её должен обтекать каким то образом.

Переменные в стеке. Где хранятся? Как обрабатываются? Есть ли программный стек или только стек процессора?
Есть у меня пробелы в познаниях, хотел бы их устранить. 1. Что такое стек в самом языке С++ ? 2....

Как в Mathcad 14, сделав вычисление 7*x+37solve,x=-5.285714286 сделать так чтобы автоматически присвоилось x:= -5.28 или x=-5.28
Как в Mathcad 14, сделав вычисление 7*x+37solve,x=-5.285714286 сделать так чтобы автоматически...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru