40f6142abd
Signed-off-by: Christina Sørensen <christina@cafkafk.com> |
||
---|---|---|
.. | ||
.exercism | ||
bats-extra.bash | ||
bats-jq.bash | ||
HELP.md | ||
raindrops.jq | ||
README.md | ||
test-raindrops.bats |
Raindrops
Welcome to Raindrops on Exercism's jq Track.
If you need help running the tests or submitting your code, check out HELP.md
.
Introduction
Raindrops is a slightly more complex version of the FizzBuzz challenge, a classic interview question.
Instructions
Your task is to convert a number into its corresponding raindrop sounds.
If a given number:
- is divisible by 3, add "Pling" to the result.
- is divisible by 5, add "Plang" to the result.
- is divisible by 7, add "Plong" to the result.
- is not divisible by 3, 5, or 7, the result should be the number as a string.
Examples
- 28 is divisible by 7, but not 3 or 5, so the result would be
"Plong"
. - 30 is divisible by 3 and 5, but not 7, so the result would be
"PlingPlang"
. - 34 is not divisible by 3, 5, or 7, so the result would be
"34"
.
A common way to test if one number is evenly divisible by another is to compare the [remainder][remainder] or [modulus][modulo] to zero.
Most languages provide operators or functions for one (or both) of these.
[remainder]: https://exercism.org/docs/programming/operators/remainder
[modulo]: https://en.wikipedia.org/wiki/Modulo_operation
jq
Tips
The if-then-else
expression will be helpful in this exercise.
An example:
8, 10, 12 | if . < 10 then "\(.) is less than ten"
elif . > 10 then "\(.) is more than ten"
else "\(.) equals ten"
end
outputs
"8 is less than ten"
"10 equals ten"
"12 is more than ten"
Source
Created by
- @glennj
Based on
A variation on FizzBuzz, a famous technical interview question that is intended to weed out potential candidates. That question is itself derived from Fizz Buzz, a popular children's game for teaching division. - https://en.wikipedia.org/wiki/Fizz_buzz