题意求N!的位数,n的范围是10^7.
求一个数a有多少位可以用log10(n)+1,(n)为double类型
求N!可以用 log10(1)+log10(2)+...+log10(n)+1;
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cmath>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))#define maxn 1000int main(){ int t; cin>>t; while(t--){ int n; cin>>n; double sum=0; for(int i=1;i<=n;i++)sum+=log10((double(i))); cout<<(int)sum+1<<endl; } return 0;}求N!可以用 log10(1)+log10(2)+...+log10(n)+1;
新闻热点
疑难解答