# Sum of Digits / Digital Root [6 kyu]
[Sum of Digits / Digital Root](https://www.codewars.com/kata/541c8630095125aba6000c00)
6 kyu
## Solution
```cpp=
/**
*** Author: R-CO
*** E-Mail: daniel1820kobe@gmail.com
*** Date: 2020-07-28
**/
#include <cctype>
#include <cstdlib>
#include <iostream>
using std::cout;
using std::endl;
struct TestCaseStruct {
int input;
int expected_output;
};
class DigitalRoot {
public:
int digital_root(int n) {
int output = n;
while (output >= 10) {
auto temp = output;
output = 0;
while (temp != 0) {
output += temp % 10;
temp /= 10;
}
}
return output;
}
};
int main(int argc, char *argv[]) {
/*
It(Digital_root)
{
Assert::That(digital_root(16) , Equals(7));
Assert::That(digital_root(195) , Equals(6));
Assert::That(digital_root(992) , Equals(2));
Assert::That(digital_root(167346) , Equals(9));
Assert::That(digital_root(0) , Equals(0));
}
*/
TestCaseStruct test_cases[] = {
{16, 7}, {195, 6}, {992, 2}, {167346, 9}, {0, 0}};
DigitalRoot solution;
for (const auto& test_case : test_cases) {
if (solution.digital_root(test_case.input) == test_case.expected_output) {
cout << "test case \"" << test_case.input << "\" is pass." << std::endl;
} else {
cout << "test case \"" << test_case.input << "\" is fail." << std::endl;
}
}
return EXIT_SUCCESS;
}
```
## Result
PASS
###### tags: `CodeWars` `C++`