В чем проблема в типах данных при поиске факториала?
*Было задание на лабораторной, посчитать факториал.
Если указывать тип int как просили, то факториал считается неправильно уже после знач 8.
Если long, то после 12, смотрел на калькуляторе. Единственный выход long double.
В чем вопрос, почему возникают ошибки с типами данных, читал что-то связанное с разрядностью проц но нечего не понял. И как решить задачку, что бы на вывести просто число как в калькуляторе, а не число с плавающей точкой.
А что это за компилятор? С 16-битным int и действующим long double? Неужели Borland?
И до какого числа надо считать факториал? Переход к каждому новому типу (short - long - double - int64) увеличит порог примерно на 3-5 чисел, так что в общем случае потребуется длинная арифметика.
Для каждого типа данных существует максимальное (и минимальное) число, которое можно задать переменной этого типа. Факториал растет так быстро, что очень скоро разрядности стандартных типов данных перестает хватать.
Есть типы данных с произвольной разрядностью. Ищите по словосочетанию "длинная арифметика".