totalSum+= sum(n-1);
не может быть правильным.Вы никогда не инициализировали totalSum
, так как может быть правильно добавить что-то к нему?Даже если C автоматически инициализирует переменные, он, вероятно, инициализирует его как 0
, так что это будет эквивалентно totalSum = sum(n-1);
, что то же самое, что вы делаете, когда n
равно , а не , кратное 2
или 3
.
Обратите внимание, что ни одно из ваших условий ни к чему не добавляет текущую переменную итерации.Вы должны добавить n
, а не totalSum
:
totalSum = n + sum(n-1);