День добрый.
Наткнулся на вроде бы классическую задачу, да вот что-то запутался.
Необходимо найти сколько натуральных чисел от 1 до N содержат:
а) хотя бы одну цифру 3
б) хотя бы одну цифру 9.
Задача конечно решается от противного: необходимо найти количество чисел БЕЗ 3 (9). Для отрезков вида [1..
![$10^k$ $10^k$](https://dxdy-04.korotkov.co.uk/f/b/3/7/b37fdf413d4fa1fbf766224977bc10b482.png)
] решение понятно.
Количество
![$(S)$ $(S)$](https://dxdy-02.korotkov.co.uk/f/9/6/5/965e7b29a733147a82c187527ee1a5ef82.png)
чисел без троек находим:
![[1..10)$= 8$ [1..10)$= 8$](https://dxdy-04.korotkov.co.uk/f/7/d/4/7d4e1191507baf9a82617bcc17ac2f9382.png)
![[10..100)$ = 8*9$ [10..100)$ = 8*9$](https://dxdy-01.korotkov.co.uk/f/4/1/5/415779b3811b11405fcce61136fdfc6382.png)
![[100..1000)$ = 8*9^2$ [100..1000)$ = 8*9^2$](https://dxdy-02.korotkov.co.uk/f/1/b/6/1b6d11019b499de513fc56ebc3e7024882.png)
...
![$[10^{k-1}..10^k$) = 8*9^{k-1}$ $[10^{k-1}..10^k$) = 8*9^{k-1}$](https://dxdy-01.korotkov.co.uk/f/c/b/8/cb86932923e37daf5a160274d08eee6082.png)
Т.е.
![$S=8+8*9^1+8*9^2+\dots+8*9^{k-1}$ $S=8+8*9^1+8*9^2+\dots+8*9^{k-1}$](https://dxdy-01.korotkov.co.uk/f/0/9/1/0915e841bd1d995d5faba31b1698f8aa82.png)
А искомая величина равна (количество чисел хотя бы с одной цифрой 3):
![$10^k - S$ $10^k - S$](https://dxdy-01.korotkov.co.uk/f/c/3/f/c3f94718195578916ed038946ea5754f82.png)
.
Но вот когда N равно произвольному числу получаются проблемы. Например для
![$N=43929$ $N=43929$](https://dxdy-03.korotkov.co.uk/f/e/c/d/ecd214aff2ef017c04faaec348a3ab6482.png)
(числа с цифрой 3) ответ должен быть 22060 (написал специально циклическую программу).
А вот при ручной проверке такой результат НЕ получается:
![$[1..10000) = 8+8*9+9*9^2 +8*9^3$ $[1..10000) = 8+8*9+9*9^2 +8*9^3$](https://dxdy-02.korotkov.co.uk/f/9/4/6/946d12b4add0d484c97b91f7dc26d18982.png)
![$[10000..40000) = 2*9^4$ $[10000..40000) = 2*9^4$](https://dxdy-02.korotkov.co.uk/f/9/c/0/9c0911e691808cd5e1e8c3add6af823c82.png)
![$[40000..43000) = 3*9^3$ $[40000..43000) = 3*9^3$](https://dxdy-04.korotkov.co.uk/f/7/2/6/726b5792ff30aeacd023aaac700a77ef82.png)
![$[43000..43900) = 8*9^2$ $[43000..43900) = 8*9^2$](https://dxdy-04.korotkov.co.uk/f/3/9/d/39d22a6322a47f6aa6afa8b9f7d53eab82.png)
![$[43900..43920) = 2*9$ $[43900..43920) = 2*9$](https://dxdy-03.korotkov.co.uk/f/a/9/f/a9f68515cb40f51bdbe70824f87872e182.png)
![$[43920..43929] = 9$ $[43920..43929] = 9$](https://dxdy-01.korotkov.co.uk/f/0/8/8/088e9aaba356e73db3cef3b3d953177a82.png)
После вычислений получим:
![$43929 - (8(1+9+9^2+9^3)+2*9^4+3*9^3+8*9^2+2*9+9) = 21385$ $43929 - (8(1+9+9^2+9^3)+2*9^4+3*9^3+8*9^2+2*9+9) = 21385$](https://dxdy-04.korotkov.co.uk/f/7/7/7/7777b156a91aaf489942f11aef3aec5282.png)
Как видим результаты различны...
Подскажите пожалуйста в чем мое заблуждение, возможно есть другой более простой метод решения данных задач.
Заранее благодарен за любую помощь.