数学题,还是使用log避免大数,但是不要忘记需要+1,因为0也是1位,log(100)= 2,但却是3位。
1 #include <stdio.h> 2 #include <math.h> 3 4 int main() { 5 int case_n, n; 6 int i; 7 double sum; 8 9 scanf("%d", &case_n); 10 11 while (case_n--) { 12 scanf("%d", &n); 13 sum = 1.0f; 14 for (i=1; i<=n; ++i) 15 sum += log10(i); 16 printf("%d ", (int)sum); 17 } 18 19 return 0; 20 }