コード例 #1
0
int EulerUtility::digitalRoot(BigInteger n)
{
	std::vector<int> digits = BigIntToDigits(n);
	int digitSum = std::accumulate(digits.begin(), digits.end(), 0);

	if (digitSum > 9)
		return digitalRoot(digitSum);

	return digitSum;
}
コード例 #2
0
int digitalRoot(int number) {
	if(number < 10) return number;
	return digitalRoot(digitSumRecursive(number));
}