Я написал простой код для печати простой серии, в которой текущее число умножается на предыдущее число.
#include <iostream>
using namespace std;
int main()
{
int n, i;
unsigned long long result = 1;
std::cout << "please enter the number" << std::endl;
std::cin >> n;
for(i=1; i<=n; i++){
result = result*i;
}
cout<<result;
return 0;
}
вывод
введите число
65
9223372036854775808 (это самое высокое значение в результате, полученном для длинных без знака) Теперь, если входное значение равно 66, оно выдает выходное значение как 0 (поскольку оно превысило диапазон длинных длинных без знака)
Как получить результат для переменной, которая превышает диапазон типов данных?