1
1
Fork 0
exercism/jq/raindrops
Christina Sørensen 40f6142abd
feat(jq): nucleotide, gigasecond, raindrops, space-age
Signed-off-by: Christina Sørensen <christina@cafkafk.com>
2024-12-12 17:35:16 +01:00
..
.exercism feat(jq): nucleotide, gigasecond, raindrops, space-age 2024-12-12 17:35:16 +01:00
bats-extra.bash feat(jq): nucleotide, gigasecond, raindrops, space-age 2024-12-12 17:35:16 +01:00
bats-jq.bash feat(jq): nucleotide, gigasecond, raindrops, space-age 2024-12-12 17:35:16 +01:00
HELP.md feat(jq): nucleotide, gigasecond, raindrops, space-age 2024-12-12 17:35:16 +01:00
raindrops.jq feat(jq): nucleotide, gigasecond, raindrops, space-age 2024-12-12 17:35:16 +01:00
README.md feat(jq): nucleotide, gigasecond, raindrops, space-age 2024-12-12 17:35:16 +01:00
test-raindrops.bats feat(jq): nucleotide, gigasecond, raindrops, space-age 2024-12-12 17:35:16 +01:00

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