Big number
Posted 扶芥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Big number相关的知识,希望对你有一定的参考价值。
求大整数阶乘的位数:
根据:一个数n的位数等于(int)log10(n)+1;
证明:设 10m-1<=n<10m,那么显然n的位数为m
log10(10m-1)<=log(n)<log10(10m)
m-1<=log(n)<m,
log10(n)<m<log10(n)+1
那么,m=(int)log10(n)+1
所以,n!的位数:(int) [log10(n*(n-1)*(n-2)*....*1)]+1=int(log10n+log10n-1+....+log101)+1
代码如下:
#include<iostream> #include<algorithm> #include<cmath> using namespace std; int main() { int t,n; cin>>t; for(int i=0;i<t;i++){ cin>>n; double result=0.0; for(int j=1;j<=n;j++){ result+=log10(j); } int r=(int)result+1; cout<<r<<endl; } return 0; }
以上是关于Big number的主要内容,如果未能解决你的问题,请参考以下文章