递归思想的引入:
NOIP2001:
我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n<=1500001),然后对此自然数按照如下方法进行处理。
1.不作任何处理;
2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3.加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入格式:
一个自然数n(n<=1000)
输出格式:
一个整数,表示具有该性质数的个数。
f(6)=f(3)+f(2)+f(1)…
《one》递归一章有优化版,后期学习
全排列问题:
ABCDEFG
f(n)=n*f(n-1)
继续可以得出递推公式。
错位排列:信封问题
abcdefg
ABCDEFG
a放到C里面,如果c放到A,那么方案数是:
f(n-2)
如果c不放A,b不放B,d不放D…
很容易看出方案数是f(n-1)
那么f(n)=(n-1)(f(n-1)+f(n-2))
继续可以得出递推公式。