关于 阶乘的若干定理

2022-09-10 16:08:46   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《关于 阶乘的若干定理》,欢迎阅读!
阶乘,定理,若干,关于
给定一个数要你求出n!的位数HDU 1018

//常规算法,能过,但慢一些

//主要思想就是 n!=10^m; 这样只要求出m再向下取整加1就可以了

// 上面等式两边去log10,然后 m=log101+log102+~~~~~~~+log10n // //

#include #include #include using namespace std; int main() {

int T;

scanf("%d",&T); int n,i; while(T--) {

scanf("%d",&n); double ans=1.0; for(i=1;i<=n;++i)

ans+=log10((double)i); printf("%d\n",(int)ans); }

return 0; }

//斯特林公式法, 特别快。 const double pi=3.14159265;

double ans=(n*log((double)n)-n+0.5*log((double)2*n*pi))/log(10.0); printf("%d\n",(int)ans+1);

n!后面有多少个零 DUT OJ 1184

// 这道题的思想 就是找出n 中能有多少个5,因为10只能由5的偶数倍得到,即便有 //10,也要分成两个5 偶数是足够多的。对n 一直除以5,每次除得的余数加,直到0 #include int main() {

int T;

scanf("%d",&T); int n; while(T--) {

scanf("%d",&n);


int counter=0; while(n) {

counter+=n/5; n/=5; }

printf("%d\n",counter); }

return 0; }


本文来源:https://www.wddqxz.cn/9ed7f3013269a45177232f60ddccda38376be1e2.html

相关推荐