mirror of
https://github.com/correl/elm.git
synced 2024-11-29 11:09:56 +00:00
65 lines
1.6 KiB
Markdown
65 lines
1.6 KiB
Markdown
# All Your Base
|
|
|
|
Convert a number, represented as a sequence of digits in one base, to any other base.
|
|
|
|
Implement general base conversion. Given a number in base **a**,
|
|
represented as a sequence of digits, convert it to base **b**.
|
|
|
|
## Note
|
|
|
|
- Try to implement the conversion yourself.
|
|
Do not use something else to perform the conversion for you.
|
|
|
|
## About [Positional Notation](https://en.wikipedia.org/wiki/Positional_notation)
|
|
|
|
In positional notation, a number in base **b** can be understood as a linear
|
|
combination of powers of **b**.
|
|
|
|
The number 42, *in base 10*, means:
|
|
|
|
(4 * 10^1) + (2 * 10^0)
|
|
|
|
The number 101010, *in base 2*, means:
|
|
|
|
(1 * 2^5) + (0 * 2^4) + (1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (0 * 2^0)
|
|
|
|
The number 1120, *in base 3*, means:
|
|
|
|
(1 * 3^3) + (1 * 3^2) + (2 * 3^1) + (0 * 3^0)
|
|
|
|
I think you got the idea!
|
|
|
|
*Yes. Those three numbers above are exactly the same. Congratulations!*
|
|
|
|
## Elm Installation
|
|
|
|
Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
|
|
installation and learning resources.
|
|
|
|
## Writing the Code
|
|
|
|
The first time you start an exercise, you'll need to ensure you have the
|
|
appropriate dependencies installed.
|
|
|
|
```bash
|
|
$ npm install
|
|
```
|
|
|
|
Execute the tests with:
|
|
|
|
```bash
|
|
$ npm test
|
|
```
|
|
|
|
Automatically run tests again when you save changes:
|
|
|
|
```bash
|
|
$ npm run watch
|
|
```
|
|
|
|
As you work your way through the test suite, be sure to remove the `skip <|`
|
|
calls from each test until you get them all passing!
|
|
|
|
|
|
## Submitting Incomplete Solutions
|
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|