Не все пути к коду возвращают значение. Элементарный C#
public static int DigitRoot(string num) // рекурсивная функция
{
if (num.Length == 1) // базовый случай
{
return Convert.ToInt32(num);
}
int count = 0;
for (int i = 0; i < num.Length; i++) // цикл - сумма цифр строки
{
count += Convert.ToInt32(num[i].ToString());
}
if (count > 9) // если число выше чем 9 (если число дву или более значное) начать функцию заново
{
num = Convert.ToString(count);
count = 0;
DigitRoot(num);
}
else { return count; } // если ниже чем 9, возвратить
}