全错位排列/C++

f(n)=(n-1)(f(n-1)+f(n-2))
f(0)=0
f(1)=0
f(2)=1

int getvalue(int num)
{
	if (num == 1) return 0;
	else if (num == 2) return 1;
	else{
		int f1 = 0;
		int f2 = 1;
		for (int i = 3; i <= num; i++){
			int temp = f2;
			f2 = (i - 1) * (f1 + f2);
			f1 = temp;
		}
		return f2;
	}
}

版权声明:本文为Zolewit原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。