TheAlgorithms-C-Plus-Plus/math/sum_of_digits.cpp
2020-06-22 12:05:13 +00:00

73 lines
1.6 KiB
C++

/**
* Copyright 2020 @author iamnambiar
*
* @file
* \brief A C++ Program to find the Sum of Digits of input integer.
*/
#include <cassert>
#include <iostream>
/**
* Function to find the sum of the digits of an integer.
* @param num The integer.
* @return Sum of the digits of the integer.
*
* \detail
* First the algorithm check whether the num is negative or positive,
* if it is negative, then we neglect the negative sign.
* Next, the algorithm extract the last digit of num by dividing by 10
* and extracting the remainder and this is added to the sum.
* The number is then divided by 10 to remove the last digit.
* This loop continues until num becomes 0.
*/
int sum_of_digits(int num) {
// If num is negative then negative sign is neglected.
if (num < 0) {
num = -1 * num;
}
int sum = 0;
while (num > 0) {
sum = sum + (num % 10);
num = num / 10;
}
return sum;
}
/**
* Function for testing the sum_of_digits() function with a
* first test case of 119765 and assert statement.
*/
void test1() {
int test_case_1 = sum_of_digits(119765);
assert(test_case_1 == 29);
}
/**
* Function for testing the sum_of_digits() function with a
* second test case of -12256 and assert statement.
*/
void test2() {
int test_case_2 = sum_of_digits(-12256);
assert(test_case_2 == 16);
}
/**
* Function for testing the sum_of_digits() with
* all the test cases.
*/
void test() {
// First test.
test1();
// Second test.
test2();
}
/**
* Main Function
*/
int main() {
test();
std::cout << "Success." << std::endl;
return 0;
}