primeiro commit com exercicios de Exercism realizados até esta data
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# ISBN Verifier
|
||||
|
||||
Welcome to ISBN Verifier on Exercism's Python Track.
|
||||
If you need help running the tests or submitting your code, check out `HELP.md`.
|
||||
|
||||
## Instructions
|
||||
|
||||
The [ISBN-10 verification process][isbn-verification] is used to validate book identification numbers.
|
||||
These normally contain dashes and look like: `3-598-21508-8`
|
||||
|
||||
## ISBN
|
||||
|
||||
The ISBN-10 format is 9 digits (0 to 9) plus one check character (either a digit or an X only).
|
||||
In the case the check character is an X, this represents the value '10'.
|
||||
These may be communicated with or without hyphens, and can be checked for their validity by the following formula:
|
||||
|
||||
```text
|
||||
(d₁ * 10 + d₂ * 9 + d₃ * 8 + d₄ * 7 + d₅ * 6 + d₆ * 5 + d₇ * 4 + d₈ * 3 + d₉ * 2 + d₁₀ * 1) mod 11 == 0
|
||||
```
|
||||
|
||||
If the result is 0, then it is a valid ISBN-10, otherwise it is invalid.
|
||||
|
||||
## Example
|
||||
|
||||
Let's take the ISBN-10 `3-598-21508-8`.
|
||||
We plug it in to the formula, and get:
|
||||
|
||||
```text
|
||||
(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0
|
||||
```
|
||||
|
||||
Since the result is 0, this proves that our ISBN is valid.
|
||||
|
||||
## Task
|
||||
|
||||
Given a string the program should check if the provided string is a valid ISBN-10.
|
||||
Putting this into place requires some thinking about preprocessing/parsing of the string prior to calculating the check digit for the ISBN.
|
||||
|
||||
The program should be able to verify ISBN-10 both with and without separating dashes.
|
||||
|
||||
## Caveats
|
||||
|
||||
Converting from strings to numbers can be tricky in certain languages.
|
||||
Now, it's even trickier since the check digit of an ISBN-10 may be 'X' (representing '10').
|
||||
For instance `3-598-21507-X` is a valid ISBN-10.
|
||||
|
||||
[isbn-verification]: https://en.wikipedia.org/wiki/International_Standard_Book_Number
|
||||
|
||||
## Source
|
||||
|
||||
### Created by
|
||||
|
||||
- @pheanex
|
||||
|
||||
### Contributed to by
|
||||
|
||||
- @BethanyG
|
||||
- @cmccandless
|
||||
- @Dog
|
||||
- @thomasjpfan
|
||||
- @tqa236
|
||||
- @yawpitch
|
||||
|
||||
### Based on
|
||||
|
||||
Converting a string into a number and some basic processing utilizing a relatable real world example. - https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation
|
||||
Reference in New Issue
Block a user