Trong phần này, chúng ta sẽ tạo các chương trình Java cộng các chữ số của một số cho đến khi số đó trở thành số có một chữ số. Vấn đề còn được gọi là vấn đề gốc chữ số
Ví dụ
Giả sử, 76345 là một số mà chúng ta phải tìm tổng cho đến khi nó trở thành một số có một chữ số
7 + 6 + 3 + 4 + 5 = 25
Hơn nữa, chúng tôi sẽ thêm 2 và 5
2 + 5 = 7
Ta lấy 7 là số có một chữ số
Cách tiếp cận vũ phu
- Tính tổng các chữ số
- Gọi đệ quy với tổng [đã tính ở bước trên]
- Nếu số nhỏ hơn 10, hãy trả lại số
Hãy triển khai logic trên trong một chương trình Java
Chữ số duy nhất. java
đầu ra
Chúng ta cũng có thể giải quyết vấn đề trên mà không cần sử dụng bất kỳ vòng lặp và đệ quy nào. Cách tiếp cận như sau
Trong phương pháp này, đầu tiên, hãy kiểm tra xem số đó có chia hết cho 9 hay không. Nếu chia hết thì cộng các chữ số lại với nhau và kiểm tra xem tổng có chia hết cho 9 hay không. Nếu chia hết thì số đó chia hết cho 9, ngược lại thì không
Ví dụ: 54 tôi. e. [5 + 4 = 9]. Ta lấy 9 làm tổng các chữ số. Vậy tổng chia hết cho 9
Chúng tôi quan sát thấy rằng nếu một số [n] chia hết cho 9, thì tổng các chữ số của nó cho đến khi tổng trở thành một chữ số duy nhất luôn là 9. Ví dụ
n = 2880
Tổng các chữ số = 2 + 8 + 8 + 0 = 18
Số 18 có thể được thêm vào để tạo thành một số có một chữ số
18 = 1 + 8 = 9
Câu trả lời luôn là 9, nếu một số có dạng như 9x. Nếu số đó có dạng 9x+k
Một số có thể ở dạng 9x hoặc 9x + k. Đối với trường hợp đầu tiên, câu trả lời luôn là 9. Đối với trường hợp thứ hai, câu trả lời luôn là k, đây là phần còn lại
- Nếu số là 0, trả về 0
- Tìm số còn lại với 9. [số 9]
- Nếu số dư là 0, trả về 9 khác trả lại số dư
Hãy thực hiện cách tiếp cận trên trong một chương trình Java
SumOfDigits. java
đầu ra
Cách tiếp cận trên giải quyết vấn đề trong thời gian O[1]. Một cách tiếp cận khác giải quyết vấn đề trong O[1] như sau
Sum odd = 20 Sum even = 150_______024
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1536
Sum odd = 20 Sum even = 1537
Sum odd = 20 Sum even = 1515
Sum odd = 20 Sum even = 1568
Sum odd = 20 Sum even = 1540
Sum odd = 20 Sum even = 1541
Sum odd = 20 Sum even = 1542
Sum odd = 20 Sum even = 1515
Sum odd = 20 Sum even = 1568
Sum odd = 20 Sum even = 150____046____047
Sum odd = 20 Sum even = 1547
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1515
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 157
Sum odd = 20 Sum even = 1524
Sum odd = 20 Sum even = 1554
Sum odd = 20 Sum even = 1555
Sum odd = 20 Sum even = 1521
Sum odd = 20 Sum even = 1557
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1546____025
Sum odd = 20 Sum even = 1561
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1563____025
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1567____025
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1571____025
Sum odd = 20 Sum even = 1551
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 1529
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 1532
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 1581
_______00____083
Sum odd = 20 Sum even = 150_______5810
Sum odd = 20 Sum even = 1586
Sum odd = 20 Sum even = 1542
Sum odd = 20 Sum even = 1565
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 1532
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 1567
Sum odd = 20 Sum even = 1540
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1546
Sum odd = 20 Sum even = 1542
Sum odd = 20 Sum even = 1515
Sum odd = 20 Sum even = 150____5815____58402
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 1563
Sum odd = 20 Sum even = 1540
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1546
Sum odd = 20 Sum even = 1542
Sum odd = 20 Sum even = 1515
Sum odd = 20 Sum even = 150____046____047
Sum odd = 20 Sum even = 1547
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1515
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 1571____040
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1551
Sum odd = 20 Sum even = 154____58422____58423
Sum odd = 20 Sum even = 158424
Sum odd = 20 Sum even = 158425
Sum odd = 20 Sum even = 154____58422____58423
Sum odd = 20 Sum even = 158429
Sum odd = 20 Sum even = 158430
Sum odd = 20 Sum even = 158431
Sum odd = 20 Sum even = 1546____025
Sum odd = 20 Sum even = 1509
Sum odd = 20 Sum even = 158435
Sum odd = 20 Sum even = 158436
Sum odd = 20 Sum even = 158437
C#
Sum odd = 20 Sum even = 158438
Sum odd = 20 Sum even = 1581
Sum odd = 20 Sum even = 158440
________ 6011 ________ 6012
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1503
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15016
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 152
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 156
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 159
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 151
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 157
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
_______04____5840
_______04____5841
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15016
Sum odd = 20 Sum even = 15842
Sum odd = 20 Sum even = 15843
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 152
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 150____5848
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 15181
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 159
_______5812____6186
_______5812____6188
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 15810
Sum odd = 20 Sum even = 15811
_______069____5813
Sum odd = 20 Sum even = 15812____5815
_______069____5817
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 153
_______5812____6321
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 150____61810____6326
Sum odd = 20 Sum even = 1590
Sum odd = 20 Sum even = 150____61810____6362
Sum odd = 20 Sum even = 1594
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
_______04____6365
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1500
Sum odd = 20 Sum even = 15016
Sum odd = 20 Sum even = 15842
Sum odd = 20 Sum even = 151825
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 15031
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15033
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 1516
Sum odd = 20 Sum even = 151837
PHP
Sum odd = 20 Sum even = 151838
Sum odd = 20 Sum even = 151839
Sum odd = 20 Sum even = 1503
Sum odd = 20 Sum even = 151841
Sum odd = 20 Sum even = 150____61843
Sum odd = 20 Sum even = 1568
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 151847
Sum odd = 20 Sum even = 151848
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 158423
Sum odd = 20 Sum even = 151843
Sum odd = 20 Sum even = 151853
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 150_______61847
Sum odd = 20 Sum even = 151858
Sum odd = 20 Sum even = 151847
Sum odd = 20 Sum even = 151860
Sum odd = 20 Sum even = 151843
Sum odd = 20 Sum even = 151862
Sum odd = 20 Sum even = 150______61843
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 151866
Sum odd = 20 Sum even = 158423
Sum odd = 20 Sum even = 151843
Sum odd = 20 Sum even = 151869
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 157
Sum odd = 20 Sum even = 151847
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 15840
Sum odd = 20 Sum even = 15841
Sum odd = 20 Sum even = 151841
Sum odd = 20 Sum even = 15843
Sum odd = 20 Sum even = 151843
Sum odd = 20 Sum even = 1568
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154____61843
Sum odd = 20 Sum even = 151886
Sum odd = 20 Sum even = 151843
Sum odd = 20 Sum even = 1518
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 151890
Sum odd = 20 Sum even = 151848
Sum odd = 20 Sum even = 151892
Sum odd = 20 Sum even = 151848
Sum odd = 20 Sum even = 151894
Sum odd = 20 Sum even = 151895
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 158423
Sum odd = 20 Sum even = 151843
Sum odd = 20 Sum even = 151853
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15186
Sum odd = 20 Sum even = 150____6188
Sum odd = 20 Sum even = 150_______5810
Sum odd = 20 Sum even = 158423____61894
Sum odd = 20 Sum even = 158111
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 151892
Sum odd = 20 Sum even = 158114
Sum odd = 20 Sum even = 151843
Sum odd = 20 Sum even = 158116
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15815
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 151890
Sum odd = 20 Sum even = 158114
Sum odd = 20 Sum even = 151843
Sum odd = 20 Sum even = 158116
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 150______61843
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 151866
Sum odd = 20 Sum even = 158423
Sum odd = 20 Sum even = 151843
Sum odd = 20 Sum even = 151869
Sum odd = 20 Sum even = 150____61894____58134
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 154____58138
Sum odd = 20 Sum even = 15326
Sum odd = 20 Sum even = 158140
Sum odd = 20 Sum even = 151890
Sum odd = 20 Sum even = 158140
Sum odd = 20 Sum even = 15328
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 154____58138
Sum odd = 20 Sum even = 15362____58140
Sum odd = 20 Sum even = 151892
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 15365
Sum odd = 20 Sum even = 151843
Sum odd = 20 Sum even = 158154
_______5843____61843
Sum odd = 20 Sum even = 1518
Sum odd = 20 Sum even = 158158
Sum odd = 20 Sum even = 158159
Javascript
Sum odd = 20 Sum even = 158160
Sum odd = 20 Sum even = 158161
Sum odd = 20 Sum even = 154____58163
Sum odd = 20 Sum even = 154____58165
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 151841
Sum odd = 20 Sum even = 158168
_______04____58170
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 159
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 151
Sum odd = 20 Sum even = 150____58177
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 157
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 158184
_______04____5840
_______04____5841
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 151841
Sum odd = 20 Sum even = 158191
Sum odd = 20 Sum even = 150____5848
Sum odd = 20 Sum even = 150____58195
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 159
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15186
Sum odd = 20 Sum even = 150____6188
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15810
Sum odd = 20 Sum even = 15811
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 15813
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15815
_______5812____5817
Sum odd = 20 Sum even = 150____58177
Sum odd = 20 Sum even = 150____6321
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 153218
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153220
Sum odd = 20 Sum even = 15326
Sum odd = 20 Sum even = 1590
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153220
Sum odd = 20 Sum even = 153225
Sum odd = 20 Sum even = 1518
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153220____6362
Sum odd = 20 Sum even = 1594
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 153232____63233
Sum odd = 20 Sum even = 153232
Sum odd = 20 Sum even = 153235
Sum odd = 20 Sum even = 153232____6033
Sum odd = 20 Sum even = 153238
Sum odd = 20 Sum even = 153239
đầu ra.
Sum odd = 20 Sum even = 15
Độ phức tạp về thời gian. O[log10n]
Không gian phụ. Ô[1]
Cách tiếp cận khác. Vấn đề có thể được giải quyết mà không cần đảo ngược số. Chúng tôi có thể trích xuất tất cả các chữ số từ số một từ cuối. Nếu số ban đầu là số lẻ thì chữ số cuối cùng phải ở vị trí lẻ nếu không nó sẽ ở vị trí chẵn. Sau khi xử lý một chữ số, ta có thể đảo ngược trạng thái từ lẻ sang chẵn và ngược lại
Dưới đây là việc thực hiện các phương pháp trên.
C++
Sum odd = 20 Sum even = 1584
Sum odd = 20 Sum even = 1518
Sum odd = 20 Sum even = 1581
Sum odd = 20 Sum even = 1532
Sum odd = 20 Sum even = 1536
Sum odd = 20 Sum even = 15840
Sum odd = 20 Sum even = 15841
Sum odd = 20 Sum even = 15842
Sum odd = 20 Sum even = 15843______601
Sum odd = 20 Sum even = 152
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154____63253
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153255
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153257
Sum odd = 20 Sum even = 153258
Sum odd = 20 Sum even = 153259
Sum odd = 20 Sum even = 158402
Sum odd = 20 Sum even = 153261
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153264
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 153267
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153269
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 159
Sum odd = 20 Sum even = 150____63274
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15810
Sum odd = 20 Sum even = 153277
_______5812____5817
Sum odd = 20 Sum even = 150____63281
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15815
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 15813
Sum odd = 20 Sum even = 150____63287
Sum odd = 20 Sum even = 150____63289
Sum odd = 20 Sum even = 150____63291
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15325______6326
Sum odd = 20 Sum even = 15327
Sum odd = 20 Sum even = 15328
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15325____6362
Sum odd = 20 Sum even = 15363
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 15365
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 15367
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 15031
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15033
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 157
Sum odd = 20 Sum even = 15036
Sum odd = 20 Sum even = 155
Java
Sum odd = 20 Sum even = 153620
Sum odd = 20 Sum even = 15011
Sum odd = 20 Sum even = 153622
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15840
Sum odd = 20 Sum even = 15841
Sum odd = 20 Sum even = 15016
Sum odd = 20 Sum even = 15842
Sum odd = 20 Sum even = 15843
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 152
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 154____63253
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153255
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153638
Sum odd = 20 Sum even = 153639
Sum odd = 20 Sum even = 1565
Sum odd = 20 Sum even = 1566
Sum odd = 20 Sum even = 1551______63643
Sum odd = 20 Sum even = 153259
Sum odd = 20 Sum even = 158402
Sum odd = 20 Sum even = 153261
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153264
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 1546
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 1548
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153269
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 1510
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 1568
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 150____63274
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15810
Sum odd = 20 Sum even = 153277
_______5812____076____015
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 150____63281
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15815
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 1570____015
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 150____63287
Sum odd = 20 Sum even = 150____63289
Sum odd = 20 Sum even = 150____63291
_______00____020____015____6329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1588
Sum odd = 20 Sum even = 15326
Sum odd = 20 Sum even = 1590
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1588
Sum odd = 20 Sum even = 15362
Sum odd = 20 Sum even = 1594
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 15365
________ 000 ________ 6016 ________ 5842 ________ 60309
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 1508
Sum odd = 20 Sum even = 1509
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15033
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 150320
Python3
Sum odd = 20 Sum even = 1518
Sum odd = 20 Sum even = 1554
Sum odd = 20 Sum even = 1555
Sum odd = 20 Sum even = 1521
Sum odd = 20 Sum even = 1557
Sum odd = 20 Sum even = 154____60327
_______04____60329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15810
Sum odd = 20 Sum even = 1541
Sum odd = 20 Sum even = 1542
Sum odd = 20 Sum even = 1565
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1551
Sum odd = 20 Sum even = 150338
Sum odd = 20 Sum even = 150____60340
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 150342
Sum odd = 20 Sum even = 154____5815____58402
Sum odd = 20 Sum even = 150____60340
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 150349
_______04____60351
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1563____025
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1567____025
Sum odd = 20 Sum even = 1506
_______04____60361
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 1529
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 150338
Sum odd = 20 Sum even = 150____60369
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15810
Sum odd = 20 Sum even = 150372
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 1563
Sum odd = 20 Sum even = 1540
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1546
Sum odd = 20 Sum even = 1542
Sum odd = 20 Sum even = 1515
Sum odd = 20 Sum even = 150____60381
Sum odd = 20 Sum even = 150____5815____58402
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 1567
Sum odd = 20 Sum even = 1540
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1546
Sum odd = 20 Sum even = 1542
Sum odd = 20 Sum even = 1515
Sum odd = 20 Sum even = 150____60393
Sum odd = 20 Sum even = 150_______60340
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 150397
Sum odd = 20 Sum even = 150340
Sum odd = 20 Sum even = 150____60100
Sum odd = 20 Sum even = 150____046____047
Sum odd = 20 Sum even = 1547
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1515
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 154____58422____58423______6326
Sum odd = 20 Sum even = 150112
Sum odd = 20 Sum even = 154____58422____58423______6362
Sum odd = 20 Sum even = 150117
Sum odd = 20 Sum even = 158431
Sum odd = 20 Sum even = 15810
Sum odd = 20 Sum even = 150120
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 150123
Sum odd = 20 Sum even = 158402
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1546____025
Sum odd = 20 Sum even = 1509
Sum odd = 20 Sum even = 154____58435
Sum odd = 20 Sum even = 150131
C#
Sum odd = 20 Sum even = 150132
Sum odd = 20 Sum even = 1581
Sum odd = 20 Sum even = 158440
Sum odd = 20 Sum even = 15011
Sum odd = 20 Sum even = 153622
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15840
Sum odd = 20 Sum even = 15841
Sum odd = 20 Sum even = 15016
Sum odd = 20 Sum even = 15842
Sum odd = 20 Sum even = 15843
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 152
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 154____63253
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153255
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153257
Sum odd = 20 Sum even = 153258
Sum odd = 20 Sum even = 153259
Sum odd = 20 Sum even = 158402
Sum odd = 20 Sum even = 153261
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153264
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 153267
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153269
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 150169
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 150____63274
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15810
Sum odd = 20 Sum even = 153277
_______5812____5817
Sum odd = 20 Sum even = 153218
Sum odd = 20 Sum even = 150____63281
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15815
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 15813
Sum odd = 20 Sum even = 153218
Sum odd = 20 Sum even = 150____63287
Sum odd = 20 Sum even = 150____63289
Sum odd = 20 Sum even = 153218
Sum odd = 20 Sum even = 150____63291
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 154____61810____6326
Sum odd = 20 Sum even = 1590
Sum odd = 20 Sum even = 154____0004
Sum odd = 20 Sum even = 15362
Sum odd = 20 Sum even = 1594
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 15008
Sum odd = 20 Sum even = 15016
Sum odd = 20 Sum even = 1500
Sum odd = 20 Sum even = 15842
Sum odd = 20 Sum even = 15012
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 15031
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15033
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 15022
Javascript
Sum odd = 20 Sum even = 158160
Sum odd = 20 Sum even = 15024
Sum odd = 20 Sum even = 15840
Sum odd = 20 Sum even = 15841
Sum odd = 20 Sum even = 151841
Sum odd = 20 Sum even = 158435
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154____63253
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153255
Sum odd = 20 Sum even = 154____0035____63259
Sum odd = 20 Sum even = 158402
Sum odd = 20 Sum even = 153261
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153264
_______04____0043
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153269
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 158
Sum odd = 20 Sum even = 159
Sum odd = 20 Sum even = 150____63274
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15810
Sum odd = 20 Sum even = 153277
_______5812____5817
Sum odd = 20 Sum even = 150____63281
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15815
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 15813
Sum odd = 20 Sum even = 150____63287
Sum odd = 20 Sum even = 150____63289
Sum odd = 20 Sum even = 150____63291
_______00____0069
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153220
Sum odd = 20 Sum even = 15326
Sum odd = 20 Sum even = 15075
Sum odd = 20 Sum even = 153225
Sum odd = 20 Sum even = 1518
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153220____6362
Sum odd = 20 Sum even = 1594
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 15365
Sum odd = 20 Sum even = 153218
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153233
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15033
Sum odd = 20 Sum even = 15089
Sum odd = 20 Sum even = 153239
đầu ra.
Sum odd = 20 Sum even = 15
Độ phức tạp về thời gian. O[log10n] vì vòng lặp while sẽ chạy trong log10n lần
Không gian phụ trợ. Ô[1]
Phương pháp #3. Sử dụng phương thức string[]
- Chuyển đổi số nguyên thành chuỗi. Duyệt qua chuỗi và lưu trữ tất cả các chỉ số chẵn tổng trong một biến và tất cả các chỉ số lẻ tổng trong một biến khác
Dưới đây là việc thực hiện
C++
Sum odd = 20 Sum even = 1584
Sum odd = 20 Sum even = 1518
Sum odd = 20 Sum even = 1581
Sum odd = 20 Sum even = 1532
Sum odd = 20 Sum even = 1536
Sum odd = 20 Sum even = 15840
Sum odd = 20 Sum even = 15841
Sum odd = 20 Sum even = 15842
Sum odd = 20 Sum even = 15843______601
Sum odd = 20 Sum even = 152
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153264
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 153267
_______04____0110
_______04____0112
_______04____0114
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15116____58423
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 15119
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 150____5810
Sum odd = 20 Sum even = 15124
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 15126
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 15128
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15815
_______5812____0132____601
Sum odd = 20 Sum even = 15128
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15325______6326
Sum odd = 20 Sum even = 15327
Sum odd = 20 Sum even = 15328
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15325______6362
Sum odd = 20 Sum even = 15146
Sum odd = 20 Sum even = 15328
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 15365
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 15367
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 15031
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15033
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 157
Sum odd = 20 Sum even = 15036
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 15164
Java
Sum odd = 20 Sum even = 15038
Sum odd = 20 Sum even = 153218
Sum odd = 20 Sum even = 15039
Sum odd = 20 Sum even = 15010
Sum odd = 20 Sum even = 153218
Sum odd = 20 Sum even = 15011
Sum odd = 20 Sum even = 153622
Sum odd = 20 Sum even = 153218
Sum odd = 20 Sum even = 15016
Sum odd = 20 Sum even = 15842
Sum odd = 20 Sum even = 15843
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 152
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15180
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 1546
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 15188
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 153218
_______04____0193
_______04____0195
Sum odd = 20 Sum even = 153218
_______04____0198
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15116
Sum odd = 20 Sum even = 158423
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 15203
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 15205
Sum odd = 20 Sum even = 150_______5810
Sum odd = 20 Sum even = 15208
Sum odd = 20 Sum even = 1565
Sum odd = 20 Sum even = 1566
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 1568
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 15214
Sum odd = 20 Sum even = 15215
Sum odd = 20 Sum even = 1518
Sum odd = 20 Sum even = 150
Sum odd = 20 Sum even = 15815
Sum odd = 20 Sum even = 15812
Sum odd = 20 Sum even = 15220
Sum odd = 20 Sum even = 15215
Sum odd = 20 Sum even = 1518
Sum odd = 20 Sum even = 153218
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1588
Sum odd = 20 Sum even = 15326
Sum odd = 20 Sum even = 1590
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1588
Sum odd = 20 Sum even = 15362
Sum odd = 20 Sum even = 1594
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 153218
Sum odd = 20 Sum even = 15365
________ 000 ________ 6016 ________ 5842 ________ 60309
Sum odd = 20 Sum even = 153
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1501
Sum odd = 20 Sum even = 1508
Sum odd = 20 Sum even = 1509
Sum odd = 20 Sum even = 15329
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15033
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 155
Sum odd = 20 Sum even = 15249
Python3
Sum odd = 20 Sum even = 1518
Sum odd = 20 Sum even = 1554
Sum odd = 20 Sum even = 1555
Sum odd = 20 Sum even = 1521
Sum odd = 20 Sum even = 1557
_______04____60351
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1563____025
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 1567____025
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 154
_______04____0267
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15269____025
Sum odd = 20 Sum even = 15271
Sum odd = 20 Sum even = 15272
Sum odd = 20 Sum even = 154
_______04____0275
Sum odd = 20 Sum even = 154
Sum odd = 20 Sum even = 15116
Sum odd = 20 Sum even = 15278
Sum odd = 20 Sum even = 15279
Sum odd = 20 Sum even = 15280
Sum odd = 20 Sum even = 158423
Sum odd = 20 Sum even = 15282
Sum odd = 20 Sum even = 15283
Sum odd = 20 Sum even = 150______5810
Sum odd = 20 Sum even = 15286
Sum odd = 20 Sum even = 1542
Sum odd = 20 Sum even = 1565
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1525
Sum odd = 20 Sum even = 1506
Sum odd = 20 Sum even = 1532