How did I end up with this FizzBuzz?
C, 81 78 bytes

l,i;f(n){for(l=i=0;l&lt;n;l+=++i%3?i%5?snprintf(0,0,"%d",i):4:i%5?4:8);return i;}


68 bytes if you don't mind converting to double and back:

l,i;f(n){for(l=i=0;l&lt;n;l+=++i%3?i%5?log10(i)+1:4:i%5?4:8);return i;}