Problem Statement
Start with the set of real numbers from 0.0 to 1.0 inclusive, which is denoted by [0.0, 1.0]. Then
- At step 1, remove the open middle third of [0.0, 1.0] ("open" means not including its endpoints).
- At step 2, remove the open middle thirds of the 2 remaining intervals.
- ...
- At step k, remove the open middle thirds of the 2^(k-1) remaining intervals.
- ...
We want software to help determine if a given number is in the Cantor Set. Create
a class CantorSet that contains a method removed that is given a
Definition
- Class:
- CantorSet
- Method:
- removed
- Parameters:
- String
- Returns:
- int
- Method signature:
- int removed(String value)
- (be sure your method is public)
Constraints
- value will contain between 2 and 50 characters, inclusive.
- The first character in value will be '.'.
- All characters in value after the first will be digits '0'-'9'.
Examples
".200"
Returns: 2
.2 is in the middle third of the lower third of [0.0, 1.0] so it is removed in step 2.
".00000000000000000000000000000000000000000400"
Returns: 87
".74928"
Returns: 14
".975"
Returns: 0
This number is in the Cantor Set.
".9749999999999999999999999999999999999999999999999"
Returns: 106
".0000000000000000000000000000000000000000000122941"
Returns: 127
".0000000000000000000000000000000000000000000009548"
Returns: 117
".0"
Returns: 0
".9"
Returns: 0
".9000000000000000000000000000000000000000000009453"
Returns: 119
".8"
Returns: 2
".337"
Returns: 1
".6"
Returns: 1
".9999999999999999999999999999999999999999999999999"
Returns: 103
".1112345"
Returns: 2
".12345"
Returns: 2
".7001099"
Returns: 7
".1"
Returns: 0
".1000000000000000000000000000000000000000000000000"
Returns: 0
".7000000000000000000000000000000000000000000000000"
Returns: 0
".0000000000000000000000000000000000000000000000001"
Returns: 103
".0000000000000000000000000000000000000000000000002"
Returns: 105
".0000000000000000000000000000000000000000000000003"
Returns: 102
".0000000000000000000000000000000000000000000000004"
Returns: 102
".0000000000000000000000000000000000000000000000005"
Returns: 106
".0000000000000000000000000000000000000000000000006"
Returns: 104
".0000000000000000000000000000000000000000000000007"
Returns: 101
".0000000000000000000000000000000000000000000000008"
Returns: 101
".0000000000000000000000000000000000000000000000009"
Returns: 101
".0000000000000000000000000000000000000000000000000"
Returns: 0
".075"
Returns: 0
".025"
Returns: 0
".0750000000000000000000000000"
Returns: 0
".0250"
Returns: 0
".3250"
Returns: 0
".02500"
Returns: 0
".10000"
Returns: 0
".22500"
Returns: 0
".225000"
Returns: 0
".925000"
Returns: 0
".0118605"
Returns: 7
".0118605"
Returns: 7
".330269761236"
Returns: 19
".4249717191642938874771436183"
Returns: 1
".0278750606311674235588545332470"
Returns: 10
".45759582818588442027654025321305275096575569"
Returns: 1
".25829584021966"
Returns: 21
".2482838798054623461551841268010179406247910065"
Returns: 20
".004797385650214389"
Returns: 5
".3333333333333333333333333333333333333333333333333"
Returns: 104
".6666666666666666666666666666666666666666666666668"
Returns: 103
".33333333333333333333333333333333333333333334"
Returns: 1
".3333333333333333333333333333333333333333235325322"
Returns: 86
".9999999999999984"
Returns: 38
".9750000000000000000000000000000000000000000000001"
Returns: 100
".666666666666666666666666666666666666666666666667"
Returns: 102
".123460963214612348612934912348602164312630416043"
Returns: 2
".3250000000000000000000000000000000000000000000000"
Returns: 0
".9999999999999999999999999999999999999999999999999"
Returns: 103
".3333333333333333333333333333333333333333334"
Returns: 1
".6750000000000000000000000000000000000000000000001"
Returns: 103
".333333333333333333333333333333333333333333"
Returns: 94
".33333333333333333333333333333333333"
Returns: 85
".3333333333333333333333333333333333333"
Returns: 79
".975934759870240814895345"
Returns: 4
".6750000000000000000000000000000000000000000000000"
Returns: 0
".333333333333333333333333333333333333333333333332"
Returns: 104
".9999999999999999999999999999999999999999"
Returns: 84