fork download
  1. #include <math.h>
  2. #include <stdio.h>
  3.  
  4. int digits_for_pages(unsigned n) {
  5. // oeis A058183
  6. return (n+1)*floor(log10(10*n)) - (pow(10, floor(log10(10*n)))-1)/(10-1);
  7. }
  8.  
  9. int main(void) {
  10. int p;
  11. p = 9; printf("%d pages need %d digits\n", p, digits_for_pages(p));
  12. p = 10; printf("%d pages need %d digits\n", p, digits_for_pages(p));
  13. p = 11; printf("%d pages need %d digits\n", p, digits_for_pages(p));
  14. p = 99; printf("%d pages need %d digits\n", p, digits_for_pages(p));
  15. p = 100; printf("%d pages need %d digits\n", p, digits_for_pages(p));
  16. p = 999; printf("%d pages need %d digits\n", p, digits_for_pages(p));
  17. p = 1000; printf("%d pages need %d digits\n", p, digits_for_pages(p));
  18. return 0;
  19. }
  20.  
Success #stdin #stdout 0.01s 5332KB
stdin
Standard input is empty
stdout
9 pages need 9 digits
10 pages need 11 digits
11 pages need 13 digits
99 pages need 189 digits
100 pages need 192 digits
999 pages need 2889 digits
1000 pages need 2893 digits