之前我们已经验证了,普通青蛙只有1,2步长时相对应的台阶,等于他像临步长的台阶路线之和。也就是说,他的步长的种类,决定了这个台阶的方法数。
如果青蛙可以跳1,2,3步那么n阶的路线为
f(n)=f(n-1)+f(n-2)+f(n-3)
如果青蛙可以跳1,2,3,4步那么n阶的路线为
f(n)=f(n-1)+f(n-2)+f(n-3)+f(n-4)
如果青蛙可以跳1,2,3,4·····n步那么n阶的路线为
f(n)=f(n-1)+f(n-2)+f(n-3)+·······+f(2)+f(1)
那么f(n-1)=f(n-2)+f(n-3)+····f(2)+f(1)。
我们把f(n)公式中f(n-1)后的全部替换为f(n-1)
f(n)=2f(n-1)
//code
if(number==1)return 1;
step=0; a=1;
for(i=2;i<number+1;i++)
{
ret=2*a;
a=ret;
}
return ret;
因为每一次都是2*a,因为a的初始值为1,那么这就看成是a的number+1-2的次平方运算。
step=pow(2,number+1-2);