int 대신 long을 사용할 때 더 빠른 프로그램

양자

다음 문제를 해결하려고합니다.

정수 n이 주어지면 n!의 후행 0 수를 반환합니다.

참고 : 솔루션은 로그 시간 복잡성이어야합니다.

너무 느리게 거부 된 다음 코드를 제출했습니다.

public int trailingZeroes(int n) {
        int result = 0;
        int k = 5;

        while (k <= n){
            result += n / k;
            k *= 5;
        }

        return result;
    }

하지만 변수 k를 long으로 변경하면 충분히 빠릅니다.

int 대신 k as long을 선언하면 왜 더 빠릅니까? (내가 올바르게 이해하면 반대가 일어나야한다고 말하는 이 질문읽었습니다. )

크리스 제스터 영

@Tunaki의 의견은 아마도 돈에 대한 것입니다. 귀하의 경우 n보다 큰 Integer.MAX_VALUE / 5를 들어, 다음이 가능합니다 k보다 값이 큰에 도달 Integer.MAX_VALUE / 5한 후 5 곱한 후, 그것은 오버 플로우 및 프로그램이 종료하지 않도록, 다시 소수가된다.

반면에 k길이가 긴 경우 값이보다 큰지 여부는 중요하지 않습니다 Integer.MAX_VALUE / 5. 그것이 int이고 int가 충분히 가까운 값에 도달하지 Long.MAX_VALUE / 5않기 때문에 보장되는 것 보다 작 으면 n오버플로가 발생하지 않습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PHP로 트랜스 파일 할 때 Haxe의 Map <Int, Int>에 대한 더 빠른 대안이 있습니까?

분류에서Dev

대용량 파일 (~ 20GB)을 복사 할 때 cp에 대한 더 빠른 대안이 있습니까?

분류에서Dev

대용량 파일 (~ 20GB)을 복사 할 때 cp에 대한 더 빠른 대안이 있습니까?

분류에서Dev

사용자 입력을 목록의 int로 변경하는 더 빠른 방법?

분류에서Dev

사용자가 다른 exe 파일 / 프로그램을 시작할 때 C # winforms 프로그램에서 감지

분류에서Dev

프로그램을 최소화 할 때 컴퓨터가 더 적은 리소스를 사용합니까?

분류에서Dev

Android의 edittext에 숫자 대신 소수점을 추가 할 때 응용 프로그램이 충돌 함

분류에서Dev

응용 프로그램을 다른 폴더로 이동

분류에서Dev

열을 사용하고 신문 스타일을 유지할 때 다른 헤더

분류에서Dev

apt-get install [프로그램]을 사용할 때 항상 최신 버전의 프로그램을 다운로드하려면 어떻게해야합니까?

분류에서Dev

빠른 압축을 사용할 때 Dask DataFrame에 대한 작업이 실패 함

분류에서Dev

프로그램을 실행할 때 사용할 코어 선택

분류에서Dev

wso2is 및 Java 응용 프로그램을 사용할 때 동일한 XACML 요청 다른 응답

분류에서Dev

응용 프로그램 인증을 사용할 때 KustoServiceError

분류에서Dev

실행 프로그램을 사용할 때 올바른 경로를 제공하는 방법

분류에서Dev

OpenGL : 프로그램이 변형 된 사각형 대신 일반 흰색 사각형을 렌더링합니다.

분류에서Dev

C / Python 프로그램에서 부호없는 long long을 사용할 때 비정상적인 동작

분류에서Dev

단일 스레드 프로그램을 사용하는 대신 다중 스레드 프로그램과 병렬로 프로젝트를 컴파일 할 때 성능상의 이점이 있습니까?

분류에서Dev

WebGL : 다른 프로그램을 사용하여 많은 객체 렌더링

분류에서Dev

if 문을 사용할 때 프로그램이 다른 결과를 제공하는 이유

분류에서Dev

폴더가 다른 PHP 응용 프로그램의 하위 폴더 일 때 codeigniter 폴더 이름 숨기기

분류에서Dev

스프링 부팅 응용 프로그램을 시작할 때 왜 GSON 빌더 에러가 발생합니까?

분류에서Dev

new int [10] [3]에서 int ** 포인터로 return을 캐스팅 할 때이를 사용하는 프로그램은 다음을 출력합니다. Segmentation fault : 11?

분류에서Dev

응용 프로그램을 처음 시작할 때 대화 상자 표시

분류에서Dev

for 루프 R 대신 데이터 테이블을 하위 집합으로 만드는 더 빠른 방법

분류에서Dev

Windows에서 응용 프로그램을 실행할 때 자동으로 열리는 폴더 만들기

분류에서Dev

응용 프로그램을 빌드 할 때 Cocoapods 헤더를 찾을 수 없습니다.

분류에서Dev

Pandas로 데이터 프레임을 반복 할 때 if / else 문을 사용하는 가장 빠른 방법

분류에서Dev

사용자가 0을 입력 할 때까지 int 값을 허용 한 다음 최소 양의 정수를 찾는 Java 프로그램

Related 관련 기사

  1. 1

    PHP로 트랜스 파일 할 때 Haxe의 Map <Int, Int>에 대한 더 빠른 대안이 있습니까?

  2. 2

    대용량 파일 (~ 20GB)을 복사 할 때 cp에 대한 더 빠른 대안이 있습니까?

  3. 3

    대용량 파일 (~ 20GB)을 복사 할 때 cp에 대한 더 빠른 대안이 있습니까?

  4. 4

    사용자 입력을 목록의 int로 변경하는 더 빠른 방법?

  5. 5

    사용자가 다른 exe 파일 / 프로그램을 시작할 때 C # winforms 프로그램에서 감지

  6. 6

    프로그램을 최소화 할 때 컴퓨터가 더 적은 리소스를 사용합니까?

  7. 7

    Android의 edittext에 숫자 대신 소수점을 추가 할 때 응용 프로그램이 충돌 함

  8. 8

    응용 프로그램을 다른 폴더로 이동

  9. 9

    열을 사용하고 신문 스타일을 유지할 때 다른 헤더

  10. 10

    apt-get install [프로그램]을 사용할 때 항상 최신 버전의 프로그램을 다운로드하려면 어떻게해야합니까?

  11. 11

    빠른 압축을 사용할 때 Dask DataFrame에 대한 작업이 실패 함

  12. 12

    프로그램을 실행할 때 사용할 코어 선택

  13. 13

    wso2is 및 Java 응용 프로그램을 사용할 때 동일한 XACML 요청 다른 응답

  14. 14

    응용 프로그램 인증을 사용할 때 KustoServiceError

  15. 15

    실행 프로그램을 사용할 때 올바른 경로를 제공하는 방법

  16. 16

    OpenGL : 프로그램이 변형 된 사각형 대신 일반 흰색 사각형을 렌더링합니다.

  17. 17

    C / Python 프로그램에서 부호없는 long long을 사용할 때 비정상적인 동작

  18. 18

    단일 스레드 프로그램을 사용하는 대신 다중 스레드 프로그램과 병렬로 프로젝트를 컴파일 할 때 성능상의 이점이 있습니까?

  19. 19

    WebGL : 다른 프로그램을 사용하여 많은 객체 렌더링

  20. 20

    if 문을 사용할 때 프로그램이 다른 결과를 제공하는 이유

  21. 21

    폴더가 다른 PHP 응용 프로그램의 하위 폴더 일 때 codeigniter 폴더 이름 숨기기

  22. 22

    스프링 부팅 응용 프로그램을 시작할 때 왜 GSON 빌더 에러가 발생합니까?

  23. 23

    new int [10] [3]에서 int ** 포인터로 return을 캐스팅 할 때이를 사용하는 프로그램은 다음을 출력합니다. Segmentation fault : 11?

  24. 24

    응용 프로그램을 처음 시작할 때 대화 상자 표시

  25. 25

    for 루프 R 대신 데이터 테이블을 하위 집합으로 만드는 더 빠른 방법

  26. 26

    Windows에서 응용 프로그램을 실행할 때 자동으로 열리는 폴더 만들기

  27. 27

    응용 프로그램을 빌드 할 때 Cocoapods 헤더를 찾을 수 없습니다.

  28. 28

    Pandas로 데이터 프레임을 반복 할 때 if / else 문을 사용하는 가장 빠른 방법

  29. 29

    사용자가 0을 입력 할 때까지 int 값을 허용 한 다음 최소 양의 정수를 찾는 Java 프로그램

뜨겁다태그

보관