3 条题解
-
0
#include <stdio.h> #include <math.h> int fun(int n) { if (n <= 1) return 1; // 0和1的阶乘都是1,只有1位数字 double N = 0; for (int i = 2; i <= n; i++) N += log10(i); // 使用对数运算计算阶乘的位数 return (int)floor(N) + 1; // 向下取整并加1,得到位数 } int main() { int m; scanf("%d",&m); while(m--){ int n; scanf("%d", &n); int N = fun(n); printf("%d\n",N); } return 0; }
- 1
信息
- ID
- 147
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 704
- 已通过
- 214
- 上传者