hdu 1018Big NUmber

xiaoxiao2021-02-27  382

#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,让你求这个数的的阶乘的位数。

思路: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的位数

转载请注明原文地址: https://www.6miu.com/read-3815.html

最新回复(0)