hdu1018 big number

강력 한 수학
제목 은 n 의 곱셈 수 를 간단하게 구 해 야 합 니 다.
제목 링크http://acm.hdu.edu.cn/showproblem.php?pid=1018
우선 폭력 구 해 시간 951 ms 가 지나 갈 뻔 했 습 니 다.
숫자 n 의 자릿수 log 10 (n) 구하 기;
수학 공식 N!의 자릿수 = log 10 (N!) = log 10 (1) + log 10 (2) +... + log (N);
코드 는 다음 과 같다.
그런데 시간 초과 할 뻔 했 어 요.
그리고 위대 한 수학자 가 발명 한 공식 스 털 링 수도 있다.
log10(n!)=1.0/2*log10(2*pi*n)+n*log10(n/e)
코드 는 다음 과 같다.
#include <stdio.h>
#include <math.h>
int fun(int n) { double sum=0; //log10        double
 for(int i=1;i<=n;i++) {
        sum+=log10(i); } return (int)sum+1; } int main() { int t; int n;
    scanf("%d",&t); while(t--) {
        scanf("%d",&n);
        printf("%d
"
,fun(n)); } }

좋은 웹페이지 즐겨찾기