我在研究如何編程,並且最近一直在處理一個問題,該問題計算從最小值到最大值輸入的2個數字的總數。例如,如果有人輸入了數字4,7,則計算將是4 + 5 + 6 + 7 = 22。在C中編寫遞歸函數
我試過我認爲會是recSum的定義,但顯然這是錯誤的,因爲我得到了分段錯誤。我的定義有什麼問題?
/* Define the recursive function */
int recSum (int x, int max)
{
int incrementalSum = 0;
if (x == max)
{
return x; /* Exit if summated lower to upper numbers */
}
else
{
return (x + recSum(x++, max)); /* My recursive call */
}
} /* End of function call */
*新代碼顯示在上面,對不起,我使用了錯誤的代碼。
如果你打算寫代碼一樣,如果它是20世紀70年代,至少使其可讀。 –
你的'goto'構造等價於'while(1){...}'循環。循環不是遞歸。 – emlai
您是否想爲練習目的編寫一個遞歸/迭代解決方案?或者您不知道用於總結1-n中所有整數的公式? – MikeMB