Я понимаю, что это классическая проблема программирования, и поэтому я хочу быть ясной. Я не ищу код в качестве решения, но буду благодарен за толкание в правильном направлении. Я изучаю С++ и, как часть процесса обучения, я пытаюсь решить некоторые проблемы с программированием. Я пытаюсь написать программу, которая имеет дело с числами до факториала 1 млрд. Очевидно, что они будут огромными числами и слишком большими, чтобы иметь дело с использованием обычных арифметических операций. Любые указания относительно того, в каком направлении я должен идти, пытаясь решить эту проблему, будут оценены.
Я бы скорее попытался решить эту проблему, не используя дополнительные библиотеки, если возможно
Спасибо
PS - проблема здесь http://www.codechef.com/problems/FCTRL
В этом методе, который я использовал для решения проблемы, это было достигнуто путем чтения комментариев ниже:
Решение. Число 5 является простым множителем любого числа, заканчивающегося на нуль. Поэтому, деля факториальное число на 5, рекурсивно и добавляя коэффициенты, вы получаете количество конечных нулей в факториальном результате
например. - Количество завершающих нулей в 126!= 31
126/5 = 25 остаток 1
25/5 = 5 остаток 0
5/5 = 1 остаток 0
25 + 5 + 1 = 31
Это работает для любого значения, просто продолжайте разделение до тех пор, пока коэффициент меньше чем 5