51nod1058 N的阶乘的长度+51nod1130 N的阶乘的长度 V2(斯特林近似) 学习斯特林公式

来源:互联网 发布:php 移动 编辑:程序博客网 时间:2024/04/28 06:05

51nod1058 N的阶乘的长度

51nod1130 N的阶乘的长度 V2(斯特林近似)

题意:N的阶乘的长度(都是水题,只是记一下公式)。

题解:由斯特林公式:n!=sqrt(2*π*n)*(n/e)^n。

那么长度log一下即可,具体看代码。

51nod1058:

#include<bits/stdc++.h>#define debug cout<<"aaa"<<endl#define d(a) cout<<a<<endl#define mem(a,b) memset(a,b,sizeof(a))#define LL long long#define lson l,mid,root<<1#define rson mid+1,r,root<<1|1#define MIN_INT (-2147483647-1)#define MAX_INT 2147483647#define MAX_LL 9223372036854775807i64#define MIN_LL (-9223372036854775807i64-1)using namespace std;const int N = 100000 + 5;const int mod = 1000000000 + 7;const double pi = 3.1415926;const double eps = 1e-8;int main(){int n,ans;scanf("%d",&n);ans=(0.5*log(2*pi*n)+n*(log(n)-1))/log(10);printf("%d\n",ans+1);return 0;}

51nod1130:

#include<bits/stdc++.h>#define debug cout<<"aaa"<<endl#define d(a) cout<<a<<endl#define mem(a,b) memset(a,b,sizeof(a))#define LL long long#define lson l,mid,root<<1#define rson mid+1,r,root<<1|1#define MIN_INT (-2147483647-1)#define MAX_INT 2147483647#define MAX_LL 9223372036854775807i64#define MIN_LL (-9223372036854775807i64-1)using namespace std;const int N = 100000 + 5;const int mod = 1000000000 + 7;const double pi = 3.1415926;const double eps = 1e-8;int main(){int t;LL ans,n;scanf("%d",&t);while(t--){scanf("%lld",&n);ans=(0.5*log(2*pi*n)+n*(log(n)-1))/log(10);printf("%lld\n",ans+1);}return 0;}


阅读全文
0 0
原创粉丝点击