我需要一些帮助。我有一个递归函数,在C++中,简单地分裂开的字符串(所有数字),并增加了人物,看看它的总量小于9,如果不是再次调用自身直到条件满足。到目前为止,它的一切工作,直到结束的时候我的条件是满足它调用该函数一次。这显然混淆了我试图分配给它的变量的值。我提到了很多参考文献,看起来我的语法是正确的?任何帮助为什么我的函数最后一次调用自己的函数。C++递归函数不会退出时的条件是满足
////////////////////////////////////////////// ///////////
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.
}
我从把我的回报在其他{}和交换我的,如果其他条件,所以我的回报将是我的,如果什么都试过了。任何帮助将不胜感激。
谢谢。
作为@ahenderson - 使整个事情处于逃跑模式。顺便说一句 - 尽量避免recusion。通常以泪水结束 – 2012-04-23 20:32:57
你是说这个程序的终止与错误的价值或只是坚持?因为如果该值小于10,则再次调用它不应改变结果。 – 2012-04-23 20:33:30