C++做1乘到100的位数

来源:百度知道 编辑:UC知道 时间:2024/07/01 07:09:11
用C++做

各位,现在要求的是位数阿,根本没必要把乘积求出来的,标准答案:

double numofC = 0;
for(int i = 1 ; i < 100 ; i ++ )
numofC += log(i);
numofC = numofC/log(10);//转成以10为底
cout<<numofC<<endl;
求出来是157.97,也就是说,1倒100的乘积是一个158位的数字。

1楼的代码有问题,sum没有初始化,结果永为0。还有从1乘到100用int不会溢出吗?哈哈。

long jc(long n){
if(n==1)
return 1;
else
return n*jc(n-1);
}
void main(){
long i=100;
cout<<"100的阶乘等于"<<jc(i)<<endl;
//如果是求100的阶乘的值 的位数就加下面的两句
char str[]=jc(100)+"";
cout<<"100的阶乘的位数为"<<str.length<<endl;
}

#include<iostream>
using namespace std;
void main()
{
int sum;
for(int i=1;i<=100;i++)
{
sum=sum*i;
}
cout<<"1乘到100的结果为:"<<sum<<endl;
}