我需要一些帮助。我有一个递归函数,在 c++ 中,它只是分解一个字符串(所有数字)并将字符相加,看看它的总数是否小于 9。如果不是,它会再次调用自己,直到满足条件。到目前为止,它一直在工作,直到满足我的条件时它再次调用该函数。这显然会弄乱我试图分配给它的变量的值。我参考了很多参考资料,看来我的语法是正确的?关于我的函数为什么最后一次调用它的任何帮助。
///////////////////////////////////////// ///////
int finalNumber =0;
// set finalNumber
finalNumber = sumTotal(sumInput);
int sumTotal(int sumInputToString)
{
stringstream strToInt;
string convertedInt;
strToInt << sumInputToString;
convertedInt= strToInt.str();
int sum = 0;
for(int i = 0; i < convertedInt.length(); i++)
{
sum += (int)convertedInt[i] - 48;
}
if (sum > 9)
{
sumTotal(sum);
}
return sum; //ONCE SUM IS LESS THAN 9,which is what i want,
//MY PROGRAM AUTOMATICALLY JUMPS UP TWO LINES does it one
//more time than it will escape.
}
我已经尝试了一切,从将我的回报放入 else{} 并交换我的 if else 条件,以便我的回报将在我的 if 中。任何帮助将不胜感激。
谢谢。