本文主要是介绍fzu 1050 Number lengths,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:fzu 1050 Number lengths
题目大意:计算n!有多少位数。
解题思路:ans = log10(n!) = ∑(1≤i≤n)log(i).
#include <stdio.h>
#include <math.h>const int N = 1000005;
int n, d[N];void init() {double sum = 0;for (int i = 1; i < N; i++) {sum += log10((double)i);d[i] = (int)sum;}
}int main () {init();while (scanf("%d", &n) == 1) {printf("%d\n", d[n] + 1);}return 0;
}
这篇关于fzu 1050 Number lengths的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!