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

Нужно вычислить факториал 33, 100 и 1000 как можно проще

17.11.2012, 23:45. Показов 4943. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно вычислить фактариал 33, 100 и 1000 как можно проще
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.11.2012, 23:45
Ответы с готовыми решениями:

нужно решить как можно проще
в текстовом файле подсчитать количество строк, которые начинаются и оканчиваются одной и той же буквой

Нужно написать программку по заданию, используя функции, как можно проще
Дан интервал натуральных чисел . Напечатать на экране все те числа, которые принадлежат этому интервалу и которые можно выразить как сумму...

Решила задачу, но думаю, что можно было как то проще. Нужно мнение профи
Ребята, подскажите иной вариант развития события. Задача: Экономный покупатель всегда покупает товар в оптовом магазине: когда товар...

11
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
17.11.2012, 23:52
кто тебе сказал, что надо? ты факториал тысячи не вычислишь просто.

Добавлено через 1 минуту
а впрочем, калькулятор виндовый умеет
4,02387260077093773543702433923e+2567
0
1 / 1 / 0
Регистрация: 26.09.2010
Сообщений: 18
17.11.2012, 23:53  [ТС]
Ну тогда, хоть как-нибудь
0
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
17.11.2012, 23:58
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream.h>
 
int main()
{
    float d=1;
    for(int i=1;i<=33;i++)
    d*=i;
    cout<<d;
    system("pause");
    return 0;
}
1
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
17.11.2012, 23:59
от тысячи -- легко, для этого можно заюзать библиотеку gmp.
ну а хоть как-нибудь, то:
C++
1
2
3
4
5
6
7
int fact(int x){
    unsigned long long res = 1;
    for (int i = 2; i <= x; i++) {
        res *= i;
    }
    return res;
}
пс. я, конечно, не супер пользователь этого форума, но думаю, что где-то уже есть решения этой проблемы века
1
1 / 1 / 0
Регистрация: 26.09.2010
Сообщений: 18
18.11.2012, 00:00  [ТС]
NEbO, спасибо
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
18.11.2012, 00:01
а, и еще -- если нужны конкретные факториалы конкретных чисел, проще всего использовать питон, там встроена поддержка больших чисел из коробки
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
18.11.2012, 00:50
just for fun
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <SWI-cpp.h>
 
int main()
{
    try
    {
        PlEngine engine("libswipl.dll");
        {
            PlTermv cmd(1);
            cmd[0] = "factorial.pl";
            PlQuery query("consult", cmd);
            query.next_solution();
        }
        {
            PlTermv cmd(3);
            cmd[0] = 1000;
            cmd[1] = 1;
            PlQuery query("factorial", cmd);
            query.next_solution();
            std::cout << static_cast<const char*>(cmd[2]) << std::endl;
        }
    }
    catch(...)
    {
        std::cout << "some exception thrown";
    }
}
Prolog
1
2
3
4
5
6
factorial(0, _, 1) :- !.
factorial(1, Res, Res) :- !.
factorial(N, Acc, Res) :-
    Acc1 is Acc * N,
    N1 is N - 1,
    factorial(N1, Acc1, Res).
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
18.11.2012, 00:57
может, на хаскеле получилось бы покомпактнее...
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
18.11.2012, 01:05
Думаю, что задача на формулу Стирлинга.
Что-то вроде
Java
1
2
3
4
        final double e = 2.7182818284590452353602874713527d;
        for (int n : new int[]{33, 100, 1000}) {
            System.out.printf("%.4f * 10^%.4f\n", Math.sqrt(Math.PI * 2 * n), Math.log10(n / e) * n);
        }
Вроде степень правильная. Математику надо проверить и поправить.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
18.11.2012, 14:06
Цитата Сообщение от Hetrik Посмотреть сообщение
Нужно вычислить фактариал 33, 100
- проще того что внизу думаю невозможно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
double fact(double val)
{
    double ret = 1 < val ? val : 1;
    if(1 < (val -= 1))
        ret *= fact(val);
    return ret;
}
 
int main()
{
    cout<<"100! = "<<fact(100)<<endl;
    return 0;
}
У 1000! порядок превосходит DOUBLE_MAX, 4,02387260077093773543702433923e+2567 т.е нужен больший тип для хранения
Миниатюры
Нужно вычислить факториал 33, 100 и 1000 как можно проще  
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
18.11.2012, 15:03
Без длинной арифметики получить точное значение невозможно. Т.е. простым способом эта задача не решается.
Как вариант Решил посчитать (2n)!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2012, 15:03
Помогаю со студенческими работами здесь

Вычислить факториал: 100! + 2^100
Вычислить 100! + 2^100

Вычислить факториал 100!
Необходимо вычислить факториал 100! и представить его в виде массива из 158 элементов, один элемент - 1 цифра числа. Само число очень...

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

можно сделать данную программу проще?как можно примитивней
Var F,x: real; Function ArcCos(z:Real):Real; begin if Round(z*10000000)=10000000 then ArcCos:=0 else if...

Вычислить факториал 100!, учитывая, что это число не поместится не в одном из типов данных
Вычислить факториал 100!, учитывая, что это число не поместится не в одном из типов данных Найти периметр треугольника, заданного...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru