Problem Statement
We have a book with N pages, numbered 1 to N. How many times does each digit occur in the page numbers?
You are given an
Definition
- Class:
- PageNumbers
- Method:
- getCounts
- Parameters:
- int
- Returns:
- int[]
- Method signature:
- int[] getCounts(int N)
- (be sure your method is public)
Notes
- You may assume that for any valid input each of the output values fits into an int.
Constraints
- N will be between 1 and 1,000,000,000, inclusive.
Examples
7
Returns: {0, 1, 1, 1, 1, 1, 1, 1, 0, 0 }
The page numbers in this case are simply 1, 2, 3, 4, 5, 6, and 7.
11
Returns: {1, 4, 1, 1, 1, 1, 1, 1, 1, 1 }
In comparison to the previous case, we added the pages 8, 9, 10, and 11. Now we have each digit exactly once, except for the digit 1 that occurs four times: once in 1 and 10, and twice in 11.
19
Returns: {1, 12, 2, 2, 2, 2, 2, 2, 2, 2 }
Digits 2 to 9 now occur twice each, and we have plenty of occurrences of the digit 1.
999
Returns: {189, 300, 300, 300, 300, 300, 300, 300, 300, 300 }
Due to symmetry, each of the digits 1 to 9 occurs equally many times in the sequence 1,2,...,999.
1
Returns: {0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }
10
Returns: {1, 2, 1, 1, 1, 1, 1, 1, 1, 1 }
789012
Returns: {384614, 495705, 495702, 495701, 495701, 495701, 495701, 484714, 394714, 384714 }
900000000
Returns: {708888897, 820000000, 820000000, 820000000, 820000000, 820000000, 820000000, 820000000, 820000000, 720000001 }
1000000000
Returns: {788888898, 900000001, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000 }
987654321
Returns: {780521262, 891632373, 891632364, 891632284, 891631584, 891625584, 891575584, 891175584, 888175584, 868175584 }
504050403
Returns: {396420286, 503430181, 503430181, 503430181, 502480488, 406470888, 402420080, 402420080, 402420080, 402420080 }
799940036
Returns: {628864977, 739976014, 739976014, 739976011, 739966041, 739966004, 739966004, 739906040, 639966003, 639786114 }
2
Returns: {0, 1, 1, 0, 0, 0, 0, 0, 0, 0 }
9
Returns: {0, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
999999998
Returns: {788888889, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 899999991 }
9
Returns: {0, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
98
Returns: {9, 20, 20, 20, 20, 20, 20, 20, 20, 18 }
987
Returns: {188, 299, 299, 299, 299, 299, 299, 299, 296, 276 }
9876
Returns: {2867, 3978, 3978, 3978, 3978, 3978, 3978, 3974, 3944, 3744 }
98765
Returns: {38546, 49657, 49657, 49657, 49657, 49657, 49652, 49612, 49312, 47312 }
987654
Returns: {484225, 595336, 595336, 595336, 595336, 595330, 595280, 594880, 591880, 571880 }
9876543
Returns: {5829904, 6941015, 6941015, 6941015, 6941008, 6940948, 6940448, 6936448, 6906448, 6706448 }
98765432
Returns: {68175583, 79286694, 79286694, 79286686, 79286616, 79286016, 79281016, 79241016, 78941016, 76941016 }
987654321
Returns: {780521262, 891632373, 891632364, 891632284, 891631584, 891625584, 891575584, 891175584, 888175584, 868175584 }
12
Returns: {1, 5, 2, 1, 1, 1, 1, 1, 1, 1 }
123
Returns: {22, 57, 27, 23, 22, 22, 22, 22, 22, 22 }
1234
Returns: {343, 689, 389, 349, 344, 343, 343, 343, 343, 343 }
12345
Returns: {4664, 8121, 5121, 4721, 4671, 4665, 4664, 4664, 4664, 4664 }
123456
Returns: {58985, 93553, 63553, 59553, 59053, 58993, 58986, 58985, 58985, 58985 }
1234567
Returns: {713306, 1058985, 758985, 718985, 713985, 713385, 713315, 713307, 713306, 713306 }
12345678
Returns: {8367627, 11824417, 8824417, 8424417, 8374417, 8368417, 8367717, 8367637, 8367628, 8367627 }
123456789
Returns: {96021948, 130589849, 100589849, 96589849, 96089849, 96029849, 96022849, 96022049, 96021959, 96021949 }
78
Returns: {7, 18, 18, 18, 18, 18, 18, 17, 8, 7 }
789
Returns: {148, 259, 259, 259, 259, 259, 259, 249, 159, 149 }
7890
Returns: {2269, 3379, 3379, 3379, 3379, 3379, 3379, 3270, 2370, 2270 }
78901
Returns: {30572, 41681, 41680, 41680, 41680, 41680, 41680, 40582, 31582, 30582 }
789012
Returns: {384614, 495705, 495702, 495701, 495701, 495701, 495701, 484714, 394714, 384714 }
7890123
Returns: {4635146, 5746057, 5746027, 5746023, 5746022, 5746022, 5746022, 5636146, 4736146, 4636146 }
181843383
Returns: {137016968, 229814847, 147128079, 147127447, 147120362, 147116978, 147116978, 147116978, 138903740, 137016968 }
351689177
Returns: {275934727, 386734994, 386045738, 337734916, 286045738, 277734916, 276034916, 275945736, 275944905, 275934905 }
355799137
Returns: {278388723, 389499772, 389499734, 345298870, 289499724, 285098000, 278499724, 278498862, 278399723, 278397999 }
294320736
Returns: {225557880, 336668254, 330979728, 236578988, 235878981, 235558244, 235558244, 235558180, 235558143, 229878880 }
775798184
Returns: {612388428, 723499524, 723499439, 723499439, 723499439, 723297623, 722499438, 694093993, 612398618, 612396613 }
53062443
Returns: {36787128, 47835795, 47835239, 46897239, 46834732, 39897128, 36827128, 36824684, 36824684, 36824684 }
289926179
Returns: {221859827, 332970918, 322893198, 232960838, 232960838, 232960838, 232960018, 232959838, 232886008, 222812188 }
69638993
Returns: {47714589, 58825700, 58825700, 58824694, 58815699, 58815699, 58393687, 48715699, 48715693, 48353681 }
876990153
Returns: {693085179, 804196090, 804196036, 804196036, 804196035, 804196029, 804186179, 800186179, 770186179, 693176333 }
534002179
Returns: {423294987, 534401718, 534400818, 528402818, 523402818, 457402818, 423400638, 423400638, 423400628, 423400628 }
279699325
Returns: {214738762, 325849873, 305549195, 225849789, 225849763, 225849763, 225849088, 225449088, 215749762, 215447740 }
584724752
Returns: {458759345, 569870456, 569865209, 569860455, 569584961, 553584201, 468859445, 468784151, 463484098, 458759345 }
480283054
Returns: {375415915, 486243916, 486226971, 486142971, 466425971, 386142910, 386142905, 386142905, 376419015, 376132905 }
68027845
Returns: {46738110, 57821375, 57819221, 57811375, 57811371, 57811365, 55839210, 47811210, 46838156, 46810264 }
718798808
Returns: {572188559, 682098470, 673299661, 673299661, 673299661, 673299661, 673299661, 592097279, 572998188, 572197369 }
989674322
Returns: {781729262, 892840373, 892840366, 892840285, 892839585, 892839262, 892813585, 892733585, 892403585, 872077908 }
168988445
Returns: {127284484, 207384041, 138395595, 138395595, 138395537, 138395485, 137383930, 128395484, 128381822, 127372930 }
157223945
Returns: {119309084, 187644141, 130338087, 130310141, 130309191, 127533131, 120309184, 119533130, 119309184, 119309130 }
844260816
Returns: {670523978, 781634269, 781595079, 781534262, 775055896, 770534262, 770525079, 770524261, 714784995, 670524161 }
132666273
Returns: {102525847, 146303232, 113303206, 105303132, 102636857, 102636857, 102598679, 102525851, 102525847, 102525847 }
212103960
Returns: {168245047, 271360118, 180460118, 168252157, 168251196, 168251196, 168251187, 168251186, 168251186, 168251147 }
616789681
Returns: {490984828, 598885621, 592095938, 592095938, 592095938, 592095938, 508675284, 491085520, 490995512, 490985510 }
455709962
Returns: {358352849, 469453997, 469453997, 469453996, 425163959, 364873922, 358453989, 358363949, 358353986, 358353912 }
996166768
Returns: {786675946, 897753826, 897687057, 897687057, 897687057, 897687057, 896850363, 896676016, 896675947, 889009484 }
348177247
Returns: {272880144, 383968503, 383891203, 332068403, 282068401, 273891145, 273891145, 273887641, 273057392, 272880144 }
645851371
Returns: {511420367, 622530850, 622530477, 622530449, 618381749, 612373121, 557371749, 511520369, 511471739, 511420367 }
150081565
Returns: {114095538, 175124649, 125042517, 125042517, 125042517, 115124049, 115042412, 115042406, 115033972, 115032406 }
345718229
Returns: {271356442, 382465783, 382457483, 328175673, 278175673, 272175673, 271457443, 271375673, 271356673, 271356443 }
274413817
Returns: {211605061, 322709988, 297119980, 222705980, 222032798, 221605162, 221605162, 216018980, 211605079, 211605061 }
112984251
Returns: {88683245, 105762860, 89778559, 88794255, 88793507, 88793247, 88793245, 88793245, 88787497, 88767497 }
634156299
Returns: {503471849, 614539260, 614482960, 608639160, 603639160, 603479160, 537628460, 503471860, 503471860, 503471860 }
252487219
Returns: {196434141, 307545252, 259519602, 206545142, 206532362, 198932362, 196445142, 196444362, 196441362, 196434142 }
223771813
Returns: {176178461, 287289380, 204832190, 177060376, 176288561, 176288561, 176288561, 176252189, 176178475, 176178461 }
513374784
Returns: {408979348, 513465244, 510090459, 509440029, 508990244, 422364243, 408989458, 408984228, 408979353, 408979348 }
729805259
Returns: {579796805, 690902656, 690707876, 680902556, 680902556, 680901816, 680901546, 610706806, 580806806, 580606806 }
146797122
Returns: {111988122, 169896279, 123099126, 123099122, 119896245, 113099122, 112896245, 112095368, 111998122, 111995245 }
301733977
Returns: {232697065, 341808176, 341074198, 242802132, 241063198, 241063198, 241063198, 240997174, 240963187, 240963165 }
222128495
Returns: {175260489, 286300096, 199655584, 175261600, 175261596, 175261500, 175261499, 175261499, 175260995, 175260495 }
469143440
Returns: {367466984, 478521535, 478478094, 478477535, 447613908, 378466984, 377610425, 368466984, 368466984, 367610425 }
136809860
Returns: {105002727, 152913837, 116103976, 112913837, 106103976, 106103976, 105913828, 105103966, 105013788, 105003727 }
379494403
Returns: {294637274, 405748381, 405748381, 385242785, 305742092, 305647280, 305647280, 305141684, 295647280, 295136088 }
662318406
Returns: {523356477, 634465988, 633775988, 633375988, 633357488, 633357481, 587994295, 523357480, 523356887, 523356480 }
283338429
Returns: {217964482, 329075593, 312414023, 228350873, 227965513, 227965483, 227965483, 227965483, 221303343, 217964483 }
339087456
Returns: {266421642, 377445296, 377445296, 315620210, 267445253, 267445193, 267445186, 267444642, 267441642, 266521642 }
80758297
Returns: {56130747, 66483560, 66483558, 66483460, 66483460, 66481758, 66473460, 66431758, 57131055, 56372457 }
171247758
Returns: {129718245, 211324874, 139777115, 139729356, 139727115, 139719355, 139719346, 130966823, 129718246, 129718245 }
435496250
Returns: {344237845, 455348955, 455348906, 450845106, 380841357, 344745097, 344248096, 344247845, 344247845, 344244096 }
558476863
Returns: {440029966, 551141077, 551141077, 551141077, 551117940, 507994804, 441040934, 441036930, 440506894, 440029966 }
980168283
Returns: {775244732, 886155843, 886087543, 886087459, 886087458, 886087458, 886085742, 886077458, 876245020, 856244732 }
81368131
Returns: {56776423, 67255598, 66887433, 66855557, 66787423, 66787423, 66785555, 66777423, 58144687, 56776423 }
543212345
Returns: {429904664, 541008121, 540917467, 540117067, 533117017, 473117011, 429904664, 429904664, 429904664, 429904664 }
Watch out for the time limit.
543212347
Returns: {429904664, 541008123, 540917471, 540117071, 533117021, 473117013, 429904665, 429904665, 429904664, 429904664 }
901101010
Returns: {711742234, 820752335, 820650301, 820650301, 820650301, 820650301, 820650301, 820650301, 820650301, 721751312 }
736583768
Returns: {584883046, 695994157, 695994157, 692577695, 685993157, 685976926, 685476925, 621476885, 584886816, 584883046 }
100100
Returns: {39213, 50122, 50020, 50020, 50020, 50020, 50020, 50020, 50020, 50020 }
898245765
Returns: {707917646, 819028757, 818974523, 818928757, 818924523, 818918523, 818917752, 818917712, 816409178, 716163412 }
979865789
Returns: {774825648, 885936759, 885936759, 885936759, 885936759, 885936549, 885931549, 885791539, 875891449, 855557229 }
956806542
Returns: {758998447, 870103015, 870103015, 870103014, 870103007, 866909490, 859908990, 859101904, 859008447, 815808447 }
909123892
Returns: {724582962, 826494073, 826464073, 826460072, 826459179, 826459179, 826459179, 826459179, 826459172, 734706858 }
999999978
Returns: {788888887, 899999998, 899999998, 899999998, 899999998, 899999998, 899999998, 899999997, 899999988, 899999840 }
911204569
Returns: {727695876, 829211557, 827706987, 827702417, 827701987, 827701387, 827701317, 827701307, 827701307, 738905877 }
789456826
Returns: {621621962, 732733073, 732733070, 732733063, 732689890, 732629890, 732622890, 722078889, 632078816, 622078789 }
800673017
Returns: {630674855, 740439910, 740439902, 740438920, 740438902, 740438902, 740411920, 740331920, 641001919, 640328901 }
999999999
Returns: {788888889, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000 }
567859765
Returns: {446622846, 557733957, 557733957, 557733957, 557733957, 525593489, 455583718, 447583678, 446683612, 446623612 }
897411603
Returns: {707404414, 818506729, 818504521, 818504521, 818416124, 818404520, 818404424, 817816024, 814816024, 714816024 }
100000001
Returns: {68888904, 80000003, 80000000, 80000000, 80000000, 80000000, 80000000, 80000000, 80000000, 80000000 }
796995991
Returns: {627087689, 738198800, 738198799, 738198799, 738198799, 738198791, 738193791, 734193791, 637197799, 634185759 }
923878347
Returns: {736230464, 847341575, 841219923, 837219871, 836341473, 836341465, 836341465, 836339813, 836309160, 760108812 }
819760940
Returns: {652774125, 763645235, 753884294, 753884294, 753884285, 753884284, 753875225, 753835225, 673535225, 653535166 }
999996666
Returns: {788887926, 899999037, 899999037, 899999037, 899999037, 899999037, 899998668, 899997926, 899997926, 899981261 }
999999888
Returns: {788888868, 899999979, 899999979, 899999979, 899999979, 899999979, 899999979, 899999979, 899999967, 899999202 }
100000000
Returns: {68888897, 80000001, 80000000, 80000000, 80000000, 80000000, 80000000, 80000000, 80000000, 80000000 }
100
Returns: {11, 21, 20, 20, 20, 20, 20, 20, 20, 20 }
109700801
Returns: {85441558, 96551063, 86850260, 86850260, 86850260, 86850260, 86850260, 86751062, 86750162, 86450962 }
999999001
Returns: {788888594, 899999701, 899999700, 899999700, 899999700, 899999700, 899999700, 899999700, 899999700, 899993712 }
901000260
Returns: {711490090, 820600417, 820600117, 820600056, 820600056, 820600056, 820600047, 820600046, 820600046, 721600307 }
1001
Returns: {194, 303, 300, 300, 300, 300, 300, 300, 300, 300 }
101
Returns: {12, 23, 20, 20, 20, 20, 20, 20, 20, 20 }
103
Returns: {14, 25, 21, 21, 20, 20, 20, 20, 20, 20 }