求个C语言一道算法题的算法

问题描述:

求个C语言一道算法题的算法
ABCDEFG每个人对应1234567号 他们每个人都拿不到自己号码的情况 这个算法该是怎样
1个回答 分类:综合 2014-09-17

问题解答:

我来补答
这个给一个思路吧
f(1)= 0;
f(2)= 1;
f(n)= (n-1)(f(n-1)+f(n-2))
用递归就可了.
理由:假设现在n-1个人 ,有f(n-1)中方式 那么 现在增加一个人,这个人可以其中的任何一种方式的任何一个人交换 这样 为 (n-1)*f(n-1)
再次,本来n-1个人中有一个人自己拿自己 这样 是 f(n-2)(n-1) ,拿自己号码的人和新加的人换,所以成立.
有上、得 f(n)= (n-1)(f(n-1)+f(n-2))
 
 
展开全文阅读
剩余:2000