Skip to content

Rain Drop

Intro

The rules of raindrops are that if a given number:

  • has 3 as a factor, add 'Pling' to the result.
  • has 5 as a factor, add 'Plang' to the result.
  • has 7 as a factor, add 'Plong' to the result.
  • does not have any of 3, 5, or 7 as a factor, the result should be the digits of the number.

Examples

  • 28 has 7 as a factor, but not 3 or 5, so the result would be "Plong".
  • 30 has both 3 and 5 as factors, but not 7, so the result would be "PlingPlang".
  • 34 is not factored by 3, 5, or 7, so the result would be "34".

Task

Your task is to convert a number into a string that contains raindrop sounds corresponding to certain potential factors. A factor is a number that evenly divides into another number, leaving no remainder. The simplest way to test if a one number is a factor of another is to use the modulo operation.

The Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include "raindrops.h"
#include <string>

namespace raindrops {
std::string convert(int test) {
std::string tmp{};
if ((test % 3) == 0)
    tmp.append("Pling");
if ((test % 5) == 0)
    tmp.append("Plang");
if ((test % 7) == 0)
    tmp.append("Plong");
if (tmp.empty())
    tmp = std::to_string(test);
return tmp;
}
} // namespace raindrops
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#if !defined(RAINDROPS_H)
#define RAINDROPS_H
#include "string"


namespace raindrops {
    std::string convert(int);
}  // namespace raindrops

#endif // RAINDROPS_H

Last update: February 9, 2021

Comments