воскресенье, 5 сентября 2010 г.

Факториал короткого числа

[Вся длинная арифметика]  

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

По условию задачи n<=3000. В качестве osn лучше выбрать 10000, т.к. в таком случае мы сможем обойтись умножением длинного на короткое.

Комментариев нет:

Отправить комментарий