찾다

 >  Q&A  >  본문

c++ - 이 고정밀 계승 연산의 원리는 무엇입니까?

으아악

이해를 돕기 위해 댓글을 쓰고 싶은데 도중에 계속 쓸 수는 없습니다. 왜 중간에 for 세 줄이 저렇게 쓰여 있나요?

黄舟黄舟2797일 전755

모든 응답(3)나는 대답할 것이다

  • 習慣沉默

    習慣沉默2017-05-16 13:30:11

    그냥 일반적인 세로 곱셈 계산인 것 같은데 별로 할 말이 없네요

    회신하다
    0
  • ringa_lee

    ringa_lee2017-05-16 13:30:11

    으아아아

    회신하다
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:30:11

    곱셈은 int 또는 심지어 long long을 초과하므로 높은 정밀도가 필요합니다.
    높은 정밀도의 아이디어는 배열을 사용하여 숫자의 각 자릿수를 저장한 다음 인간의 곱셈 계산의 수직 곱셈 방법을 시뮬레이션하는 것입니다.
    a가 낮은 값에서 높은 값으로 저장된다는 가정하에 길이가 숫자 x의 n배인 배열 a를 계산하는 방법을 고려할 수 있습니다(예: 숫자 12345, 배열은 a[1]=5,a[2]= 4,a[3]=3,a[4]=2,a[5]=1).
    우선 다들 a[1]x%10인데 십의 자리는 (a[2]x+이전 자리의 캐리)%10
    이어야 하는데 여기서 c는 캐리를 뜻하는데요. , f[j]는 j로 루프하기 전의 (i-1)!의 j번째 비트를 나타내고, j로 루프한 후에는 i!의 j번째 비트를 나타냅니다.

    회신하다
    0
  • 취소회신하다