Тип int может поместить в себя не больше 12!.А как же нам быть если нужно найти 100! ? Самое время обратиться к длинной арифметике.
Сама реализация не представляет для нас ничего нового:
- BigInt fact(int n)
- {
- BigInt res(1);
- for (int i=2;i<=n;i++)
- res = res * i;
- return res;
- }
* This source code was highlighted with Source Code Highlighter.
По условию задачи n<=3000. В качестве osn лучше выбрать 10000, т.к. в таком случае мы сможем обойтись умножением длинного на короткое.
Комментариев нет:
Отправить комментарий