如何解释由下面的函数1
打印的字符串中FibonacciRecursion(n)
的数量等于n
- 斐波纳契数?
public static void FibonacciRecursion(int n)
{
if(n <= 1)
{
System.out.print(n);
}
else
{
FibonacciRecursion(n-1);
FibonacciRecursion(n-2);
}
}
例如,FibonacciRecursion(6)
打印1011010110110
,6
- 斐波那契数字为8
。
答案 0 :(得分:1)
你可以通过归纳来证明这一点。设ONES(x)
为二进制字符串1
中x
的个数。 F(0)
和F(1)
的输出符合您提到的属性,即ONES(F(0)) = FIB(0)
和ONES(F(1)) = FIB(1)
。
现在,如果您假设所有m<=n
,n>=1
,ONES(F(m)) = FIB(m)
那么
ONES(F(n+1)) = ONES(F(n) concat F(n-1))
= ONES(F(n)) + ONES(F(n-1))
= FIB(n) + FIB(n-1)
= FIB(n+1),
完成导入。