0
遞歸方法查找整數k可以表示爲sum的不同方式的數量,其中每個操作數都是小於n的整數...請幫助我使用算法。我不能遞歸執行
遞歸方法查找整數k可以表示爲sum的不同方式的數量,其中每個操作數都是小於n的整數...請幫助我使用算法。我不能遞歸執行
基本上認爲遞歸解決的這個問題,我的第一個想法是以下幾點:
int numberOfWays(int x)
{
if(x <= 1)
return 0;
if(x == 2)
return 1;
// else:
int res = 0;
int i;
for(i = 1; i <= x/2; i++)
res += numberOfWays(x - i);
return res;
}
我要去給它一對夫婦的測試和想法,但僅此它。
的解釋也許幾句話......
顯然,沒有寫1的整數< 1的總和的方式,並有寫2的整數< 2的總和只有一條路:2 = 1 + 1.
從那裏開始,事情變得有趣。每個整數x> 2可以寫成(x-1)+1。因爲我們遞歸,所以我們現在得到方法的數量,(x-1)可以寫成整數和<(x-1)上。最終,我們將達到(XN)= 2,這將從那裏返回1
,我們回去向上,總結我們發現代表數字的路數,瞧:)
請糾正我,如果即時通訊錯了...不應該函數的數字有2個輸入參數K和N ... – rohangulati
@ user1640967哦,我完全誤讀了這個問題。 :/我認爲n和k是相同的數字。 k和n有沒有限制? –