助けが必要です。私は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に含まれるようにするまで、すべてを試しました。どんな助けでも大歓迎です。
ありがとう。