곱셈은 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번째 비트를 나타냅니다.
그냥 일반적인 세로 곱셈 계산인 것 같은데 별로 할 말이 없네요
으아아아
곱셈은 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번째 비트를 나타냅니다.