*给你一个大数 n ,计算 n! 有多少位数
*分析:
* 123456=1.23456*10^5;
* log10(123456)=5.09151;
* log10(1.23456*10^5)=log10(1.23456)+log10(10^5)=0.09151+5;
* 故int(log10(n))+1 就是n的位数
#include<iostream> #include<cmath> using namespace std; int main() { int n,test,i,ans; double t; cin>>test; while(test--) { cin>>n; t=0; for(i=2;i<=n;i++) t+=log10(i*1.0); ans=int(t)+1; cout<<ans<<endl; } return 0; }
给你一个大数 n ,计算 n! 有多少位数
最新推荐文章于 2022-02-26 09:53:07 发布