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有没有限制? –