Solution:
We will first calculate S999, then S1999−S999, and then S2016−S1999.
Writing the integers from 1 to 999 as 001 to 999, adding eventually also 000 (since 0 digits actually do not matter), each digit appears exactly 100 times in each position (as unit, ten, or hundred). Hence
S999=300⋅(11+21+⋯+91)
For the numbers in the interval 1000→1999, compared to 0→999, there are precisely 1000 more digits 1. We get
S1999−S999=1000+S999⟹S1999=1000+600⋅(11+21+⋯+91)
Finally, in the interval 2000→2016, the digit 1 appears 9 times as unit and 19 times as a ten, the digit 2 twice as a unit and 17 times as a thousand, the digits 3,4,5, and 6 each appear exactly twice as units, and the digits 7,8,9 each appear exactly once as a unit. Hence
S2016−S1999=9⋅1+19⋅21+2⋅(31+41+51+61)+1⋅(71+81+91)
In the end, we get
S2016=1609⋅1+619⋅21+602⋅(31+41+51+61)+601⋅(71+81+91)=m+21+32+42+52+62+76+81+97=n+23⋅32⋅5⋅7p
where m,n, and p are positive integers, p coprime to 23⋅32⋅5⋅7. Then k!⋅S2016 is an integer precisely when k! is a multiple of 23⋅32⋅5⋅7. Since 7∣k!, it follows that k≥7. Also, 7!=24⋅32⋅5⋅7, implying that the least k satisfying k!⋅S2016∈Z is k=7.