题目大意: 输入n,然后求n的阶乘n!的位数
解题思路:
1)使用斯特林公式lnN!=NlnN-N+0.5ln(2N*pi)
代码如下:
/* * 1018_2.cpp * * Created on: 2013年8月11日 * Author: Administrator */ #include <iostream> #include <cmath> using namespace std; //acos相当于数学中arccos,反余弦函数 const double PI = acos(-1.0); int main(){ int t; scanf("%d",&t); while(t--){ int n; scanf("%d",&n); double sum = (n*log(n) - n + 0.5*log(n*2*PI))/log(10); cout<<(int)sum + 1<<endl; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。