먼저 당신이 파스칼의 삼각형을 볼 수있는 지수를 보면 요인
1¹ 2¹ 3¹ 4¹
1¹⋅2¹ 2¹⋅3¹ 3¹⋅4¹
1¹⋅2²⋅3¹ 2¹⋅3²⋅4¹
1¹⋅2³⋅3³⋅4¹
에서 봐 가지고 있습니다.
그래서 당신의 곱셈 피라미드의 마지막 요소의 포뮬러는
pn = Πk=1,...,n nbinom(n-1,k-1)
지금 당신이 "전용"결과의 첫 번째 자리 dn
를 얻을 수있을 것입니다. 당신은 거대한 숫자를 방지하기 위해
dn = floor(pn/10floor(log10(pn)))
= floor(10log10(pn)/10floor(log10(pn)))
= floor(10log10(pn) - floor(log10(pn)))
를 계산하여이 작업을 수행 할 수있는 당신은
log(pn) = Σk=1,...,n binom(n-1,k-1)⋅log(k)
예에 의해 직접 log(pn)
을 계산할 수 있습니다
d₄ = floor(10log₁₀(864) - floor(log₁₀(864)))
= floor(102.936513742 - 2)
= floor(100.936513742)
= floor(8.64)
= 8
당신이 n
을해야 할, log(pn)
을 계산하려면 곱셈과 n-1
추가. 이 후에는 일정한 수의 작업 만 계산해야하므로 O(n)
에서 실행됩니다.
마지막 숫자의 첫 번째 * 숫자 *를 찾아야한다는 뜻입니까? – Brian
예! 미안 나는 영어로 좋지 않다! – user2660964
피라미드를 인쇄 할 필요가 없다는 말씀입니까? 그 자리 만 찾으십니까? –