Số nguyên do người dùng nhập vào được lưu trong biến n. Sau đó, vòng lặp while được lặp lại cho đến khi biểu thức kiểm tra n. = 0 được đánh giá là 0 [sai]. Chúng tôi sẽ coi 3456 là số nguyên đầu vào.
- Sau lần lặp đầu tiên, giá trị của n sẽ được cập nhật thành 345 và số lượng được tăng lên 1
- Sau lần lặp thứ hai, giá trị của n sẽ được cập nhật thành 34 và số lượng được tăng lên 2
- Sau lần lặp thứ ba, giá trị của n sẽ được cập nhật lên 3 và số đếm được tăng lên 3
- Trong lần lặp thứ tư, giá trị của n sẽ được cập nhật thành 0 và số đếm sẽ tăng lên 4.
- Sau đó, biểu thức kiểm tra được đánh giá [ n. =0 ] là sai và vòng lặp kết thúc với số cuối cùng là 4
Dưới đây là việc thực hiện các phương pháp trên
C++
Number of digits :993
Number of digits :994
Number of digits :995
Number of digits :996
Number of digits :997
Number of digits :998
Number of digits :90
Number of digits :91
Number of digits :92
Number of digits :92
Number of digits :94
Number of digits :95
Number of digits :96
Number of digits :97
Number of digits :98
Number of digits :99
Number of digits :900
Number of digits :901
Number of digits :96
Number of digits :90
Number of digits :904
Number of digits :96
Number of digits :906
Number of digits :907
Number of digits :99
Number of digits :909
Number of digits :99
Number of digits :911
_______06____213
Number of digits :96
Number of digits :900
Number of digits :916
Number of digits :913
Number of digits :918
Number of digits :90
Number of digits :9930
Number of digits :9931____6932
Number of digits :95
Number of digits :96
Number of digits :92
Number of digits :92
Number of digits :9937
Number of digits :96
Number of digits :9939
Number of digits :9940
Number of digits :9941
Number of digits :96
Number of digits :900
Number of digits :9944
Number of digits :913
Number of digits :9946
Number of digits :9947
C
Number of digits :9948
Number of digits :9949
Number of digits :9950
Number of digits :90
Number of digits :91
Number of digits :92
Number of digits :92
Number of digits :94
Number of digits :95
Number of digits :96
Number of digits :97
Number of digits :98
Number of digits :99
Number of digits :900
Number of digits :901
Number of digits :96
Number of digits :90
Number of digits :904
Number of digits :96
Number of digits :906
Number of digits :907
Number of digits :99
Number of digits :909
Number of digits :99
Number of digits :911
_______06____213
Number of digits :96
Number of digits :900
Number of digits :916
Number of digits :913
Number of digits :918
Number of digits :90
Number of digits :9930
Number of digits :9931____6932
Number of digits :95
Number of digits :96
Number of digits :92
Number of digits :92
Number of digits :9937
Number of digits :96
Number of digits :900______001
Number of digits :902
Number of digits :903
Number of digits :96
Number of digits :900
Number of digits :9944
Number of digits :913
Java
Number of digits :908
Number of digits :909
Number of digits :910
Number of digits :911
Number of digits :912
Number of digits :913
Number of digits :914
Number of digits :96
Number of digits :916
Number of digits :90
Number of digits :91______02
Number of digits :94
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :90
Number of digits :925
Number of digits :926
Number of digits :927
Number of digits :99
Number of digits :906
Number of digits :930
Number of digits :926
Number of digits :932
_______033
Number of digits :934____035
Number of digits :927
Number of digits :933
Number of digits :911
_______09____213
Number of digits :99
Number of digits :900
Number of digits :916
_______06____213
Number of digits :96
Number of digits :947
Number of digits :96
Number of digits :912
Number of digits :916
Number of digits :9931
Number of digits :952
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :92
Number of digits :957____058
Number of digits :927
_______09____061____6940
Number of digits :963
Number of digits :964
_______06____213
Number of digits :913
Number of digits :968
Python3
Number of digits :969
Number of digits :970
Number of digits :971
Number of digits :972
Number of digits :96
Number of digits :974____075
Number of digits :926
Number of digits :96
Number of digits :906
Number of digits :979
Number of digits :975
Number of digits :926
Number of digits :982
Number of digits :99
Number of digits :984
Number of digits :985
Number of digits :985
Number of digits :975
Number of digits :935
Number of digits :99
Number of digits :974____091
Number of digits :975
Number of digits :993
Number of digits :96
Number of digits :900
Number of digits :974
Number of digits :997
Number of digits :984
Number of digits :975
Number of digits :958
Number of digits :9001
Number of digits :901
Number of digits :9003
Number of digits :9004
Number of digits :9005
Number of digits :9006
C#
Number of digits :9007
Number of digits :909
Number of digits :996
Number of digits :9010
Number of digits :913
Number of digits :914
Number of digits :96
Number of digits :916
Number of digits :90
Number of digits :91______02
Number of digits :94
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :90
Number of digits :904
Number of digits :99
Number of digits :906
Number of digits :907
Number of digits :933
Number of digits :909
Number of digits :933
Number of digits :911
_______09____213
Number of digits :99
Number of digits :900
Number of digits :916
_______06____213
Number of digits :96
Number of digits :947
Number of digits :96
Number of digits :912
Number of digits :916
Number of digits :9931
Number of digits :9044
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :92
Number of digits :9937
Number of digits :99
Number of digits :9051
Number of digits :9052
Number of digits :9053
Number of digits :991____1055
Number of digits :964
_______06____213
Number of digits :913
Number of digits :9060
PHP
Number of digits :9061
Number of digits :9062
Number of digits :994
Number of digits :9064
Number of digits :91____1066______6932
Number of digits :95
Number of digits :96
Number of digits :9070
Number of digits :9071
Number of digits :96
Number of digits :906
Number of digits :901
Number of digits :9066
Number of digits :9076
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :9066
Number of digits :975____1082
Number of digits :901
Number of digits :9066
Number of digits :9085
Number of digits :99
Number of digits :9087
Number of digits :9070
Number of digits :927
_______06____213
Number of digits :96
Number of digits :900
Number of digits :9070
Number of digits :927
Number of digits :913
Number of digits :918
Number of digits :9066
Number of digits :9099
Number of digits :9100
Number of digits :9940
Number of digits :99
Number of digits :9103
Number of digits :9066
Number of digits :9105
Number of digits :9106
Number of digits :9107
Javascript
Number of digits :9108
Number of digits :9109
Number of digits :994
Number of digits :9064
Number of digits :9112
Number of digits :95
Number of digits :96
Number of digits :9115
Number of digits :96
Number of digits :906
Number of digits :9118
Number of digits :96
Number of digits :95
_______09____2122
Number of digits :99
Number of digits :911
_______06____213
Number of digits :96
Number of digits :900
Number of digits :916
Number of digits :913
Number of digits :918
_______06____6937
Number of digits :96
Number of digits :9135____6940
Number of digits :964
Number of digits :96
Number of digits :9139
Number of digits :9140
Đầu ra
Number of digits :90
Độ phức tạp về thời gian. O[log10[n]] hoặc O[số chữ số]
Không gian phụ. O[1] hoặc hằng số
Giải pháp đệ quy để đếm các chữ số trong một số nguyên
Tiếp tục chia số cho 10, điều này làm giảm kích thước số đầu vào xuống 1 và theo dõi số lượng kích thước đã giảm
thuật toán
- Điều kiện cơ bản của phương pháp đệ quy này là khi chúng ta chia số cho 10 và số đó giảm xuống 0, vì vậy hãy trả về 1 cho thao tác này
- Thực hiện lệnh gọi hàm bằng cách chia số cho 10, giảm kích thước đầu vào của số đã cho đi 1 và thêm 1 cho thao tác này
Dưới đây là việc thực hiện các phương pháp trên
C++
Number of digits :9141
Number of digits :9949
Number of digits :995
Number of digits :996
Number of digits :997
Number of digits :998
Number of digits :90
Number of digits :91
Number of digits :92
Number of digits :92
Number of digits :94
Number of digits :95
Number of digits :96
Number of digits :97
Number of digits :9155
Number of digits :99
Number of digits :900
Number of digits :901
Number of digits :96
Number of digits :900
Number of digits :9161
Number of digits :913
Number of digits :918
Number of digits :90
Number of digits :9930
Number of digits :9931____6932
Number of digits :95
Number of digits :96
Number of digits :92
Number of digits :92
Number of digits :9937
Number of digits :96
Number of digits :9939
Number of digits :9175
Number of digits :9941
Number of digits :96
Number of digits :900
Number of digits :9944
Number of digits :913
Number of digits :9181
C
Number of digits :9182
Number of digits :9949
Number of digits :9950
Number of digits :90
Number of digits :91
Number of digits :92
Number of digits :92
Number of digits :94
Number of digits :95
Number of digits :96
Number of digits :97
Number of digits :9155
Number of digits :99
Number of digits :900
Number of digits :901
Number of digits :96
Number of digits :900
Number of digits :9161
Number of digits :913
Number of digits :918
Number of digits :90
Number of digits :9930
Number of digits :9931____6932
Number of digits :95
Number of digits :96
Number of digits :92
Number of digits :92
Number of digits :9937
Number of digits :96
Number of digits :900______001
Number of digits :902
Number of digits :903
Number of digits :96
Number of digits :900
Number of digits :9944
Number of digits :913
Java
Number of digits :908
Number of digits :909
Number of digits :910
Number of digits :99323
Number of digits :913
Number of digits :914
Number of digits :96
Number of digits :916
Number of digits :90
Number of digits :91______02
Number of digits :94
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :97
Number of digits :99336
Number of digits :935
Number of digits :99338
Number of digits :926
Number of digits :9932
Number of digits :933
Number of digits :900
Number of digits :993____027
Number of digits :99
Number of digits :900
Number of digits :993
Number of digits :99348
Number of digits :935
Number of digits :9105
_______06____213
Number of digits :96
Number of digits :947
Number of digits :96
Number of digits :912
Number of digits :916
Number of digits :9931
Number of digits :952
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :92
Number of digits :957____058
Number of digits :927
_______09____061____6940
Number of digits :963
Number of digits :964
_______06____213
Number of digits :913
Number of digits :968
Python3
Number of digits :99376
Number of digits :970
Number of digits :971
Number of digits :972
Number of digits :96
Number of digits :97
Number of digits :984
Number of digits :985
Number of digits :985
Number of digits :935
Number of digits :975
Number of digits :975
Number of digits :926
Number of digits :982
Number of digits :99
Number of digits :900
Number of digits :993
Number of digits :96
Number of digits :900
Number of digits :993
Number of digits :991
Number of digits :99397
Number of digits :985
Number of digits :985
Number of digits :935
Number of digits :9932
Number of digits :997
Number of digits :984
Number of digits :975
Number of digits :958
Number of digits :9001
Number of digits :901
Number of digits :9003
Number of digits :9004
Number of digits :9005
Number of digits :9006
C#
Number of digits :9007
Number of digits :909
Number of digits :996
Number of digits :9010
Number of digits :913
Number of digits :914
Number of digits :96
Number of digits :916
Number of digits :90
Number of digits :91______02
Number of digits :94
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :97
Number of digits :9155
Number of digits :933
Number of digits :900
Number of digits :901
Number of digits :99
Number of digits :900
Number of digits :9161
_______06____213
_______06____69438
Number of digits :96
Number of digits :912
Number of digits :916
Number of digits :9931
Number of digits :9044
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :92
Number of digits :9937
Number of digits :99
Number of digits :9051____69451
_______1053____091____69454
Number of digits :9053
Number of digits :964
_______06____213
Number of digits :913
Number of digits :9060
PHP
Number of digits :9061
Number of digits :99462
Number of digits :994
Number of digits :9064
Number of digits :91____1066______6932
Number of digits :95
Number of digits :96
Number of digits :97
Number of digits :901
Number of digits :9066
Number of digits :99473
Number of digits :99
Number of digits :900
Number of digits :901
Number of digits :96
Number of digits :900
Number of digits :99479
Number of digits :9066
Number of digits :99481
Number of digits :913
Number of digits :99483
Number of digits :9066
Number of digits :9099
Number of digits :9001
Number of digits :901______6940
Number of digits :99489
Number of digits :933
Number of digits :99491
Number of digits :9066
Number of digits :99493
Number of digits :99494
Number of digits :9107
Javascript
Number of digits :9108
Number of digits :99497
Number of digits :9949
Number of digits :9064
Number of digits :9112
Number of digits :95
Number of digits :96
Number of digits :97
Number of digits :9155
Number of digits :99
Number of digits :900
Number of digits :901
Number of digits :96
Number of digits :900
Number of digits :99510
Number of digits :913
Number of digits :918
Number of digits :99513
Number of digits :9937
Number of digits :9135
Number of digits :9175
Number of digits :964
Number of digits :9140
Đầu ra
Number of digits :9
Độ phức tạp về thời gian. O[log[n]]
Không gian phụ. O[log[n]]
Giải pháp dựa trên nhật ký để đếm các chữ số trong một số nguyên
Chúng ta có thể sử dụng log10[logarit của cơ số 10] để đếm số chữ số của số dương [logarit không được xác định cho số âm].
Số chữ số của N = cận trên của log10[N].
Dưới đây là triển khai ý tưởng trên
C++
Number of digits :99519
Number of digits :9949
Number of digits :995
Number of digits :996
Number of digits :997
Number of digits :998
Number of digits :90
Number of digits :91
Number of digits :92
Number of digits :92
Number of digits :99529
Number of digits :99530
Number of digits :900
Number of digits :99532
Number of digits :901
Number of digits :99534
Number of digits :99535
Number of digits :913
Number of digits :918
Number of digits :90
Number of digits :9930
Number of digits :9931____6932
Number of digits :95
Number of digits :96
Number of digits :92
Number of digits :92
Number of digits :9937
_______ 06____ 6939 ___ 6940
Number of digits :99550
Number of digits :9941
Number of digits :96
Number of digits :900
Number of digits :9944
Number of digits :913
Number of digits :99556
C
Number of digits :99557
Number of digits :9949
Number of digits :99559
Number of digits :9950
Number of digits :90
Number of digits :91
Number of digits :92
Number of digits :92
Number of digits :99529
Number of digits :99530
Number of digits :900
Number of digits :99532
Number of digits :901
Number of digits :99534
Number of digits :99535
Number of digits :913
Number of digits :918
Number of digits :90
Number of digits :9930
Number of digits :9931____6932
Number of digits :95
Number of digits :96
Number of digits :92
Number of digits :92
Number of digits :9937
Number of digits :96
Number of digits :900______001
Number of digits :902
Number of digits :903
Number of digits :96
Number of digits :900
Number of digits :9944
Number of digits :913
Java
Number of digits :908
Number of digits :909
Number of digits :910
Number of digits :99323
Number of digits :913
Number of digits :914
Number of digits :96
Number of digits :916
Number of digits :90
Number of digits :91______02
Number of digits :94
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :900
Number of digits :901
Number of digits :90
Number of digits :99610
Number of digits :993
Number of digits :9105
_______06____213
Number of digits :96
Number of digits :947
Number of digits :96
Number of digits :912
Number of digits :916
Number of digits :9931
Number of digits :952
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :92
Number of digits :957____058
Number of digits :927
_______09____061____6940
Number of digits :963
Number of digits :964
_______06____213
Number of digits :913
Number of digits :968
Python3
Number of digits :99638
Number of digits :99639
Number of digits :99640
Number of digits :910
Number of digits :99642
Number of digits :971
Number of digits :972
Number of digits :96
Number of digits :900
Number of digits :99647
Number of digits :991
Number of digits :993
Number of digits :9932
Number of digits :997
Number of digits :984
Number of digits :975
Number of digits :958
Number of digits :9001
Number of digits :901
Number of digits :9003
Number of digits :9004
Number of digits :9005
Number of digits :9006
C#
Number of digits :9007
Number of digits :909
Number of digits :996
Number of digits :9010
Number of digits :913
Number of digits :914
Number of digits :96
Number of digits :916
Number of digits :90
Number of digits :91______02
Number of digits :94
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :900
Number of digits :901
Number of digits :90
Number of digits :99679
_______06____213
Number of digits :96
Number of digits :947
Number of digits :96
Number of digits :912
Number of digits :916
Number of digits :9931
Number of digits :9044
Number of digits :96
Number of digits :95
Number of digits :99
Number of digits :92
Number of digits :9937
Number of digits :99
Number of digits :9051____6940
Number of digits :9053
Number of digits :964
_______06____213
Number of digits :913
Number of digits :99702
PHP
Number of digits :9061
Number of digits :99704
Number of digits :99705
Number of digits :99706
Number of digits :9064
Number of digits :91____1066______6932
Number of digits :95
Number of digits :96
Number of digits :900
Number of digits :99532____69715
Number of digits :9066
Number of digits :99717
Number of digits :913
Number of digits :918
Number of digits :9066
Number of digits :9099
Number of digits :9100
Number of digits :9940____69724
Number of digits :96
Number of digits :91____1066
Number of digits :9105
Number of digits :99729
Number of digits :9107
Javascript
Number of digits :9108
Number of digits :99732
Number of digits :9949
Number of digits :9064
Number of digits :9112
Number of digits :95
Number of digits :96
Number of digits :900
Number of digits :99739
Number of digits :913
Number of digits :918
Number of digits :99513
Number of digits :9937
Number of digits :9135
Number of digits :9940
Number of digits :991
Number of digits :99747____69748
Number of digits :99747
Number of digits :99750
Number of digits :9140
Đầu ra
Number of digits :90
Độ phức tạp về thời gian. O[1] hoặc hằng số
Không gian phụ. O[1] hoặc hằng số
Chuyển đổi số đã cho thành giải pháp chuỗi để đếm các chữ số trong một số nguyên
Ta có thể chuyển số thành chuỗi rồi tìm độ dài chuỗi để được số chữ số trong số ban đầu.