C++计数大数字、两位数或更多的阶乘数字



单击此处查看CodeFunction以执行数字的阶乘并计算该阶乘的位数

当我给予";输入:13〃;这个代码给出了所需的输出,但当我使用";输入:大于此数字或3位数的数字";则无法进行计算。我认为这是因为无符号长整型可以容纳的数值超过了。有什么解决办法吗?我怎样才能找到一个大数字的阶乘位数。

///// user function code//////////////
unsigned long long int digitInFactorial(int N)
{
int count=0;
if(N==0) || (n==1)){
return 1;
}else{
int result=1;
for(int i=1;i<=N;i++){
result=result+1;}
while(result!=0)
{
result=result/10;
count=count+1;
}}
return count;
}
int digitsInFactorial(int N) {
if (N < 0)
return 0;

if (N <= 1)
return 1;

double digit=0;

for (int i = 1; i <= N; i++)
digit = digit + log10(i);
return floor(digit) + 1;
}

最新更新