有甲给众多网友 写信,然后全部装错信封,若甲有N个朋友,那么请问有多少种方式全部装错:
输入:n
输出:错误种数
#include <stdio.h>
#include <stdlib.h>
int fun(int n) //设计一个计算的函数
{
if(n==1)return 0; //1封信则没有办法装错
if(n==2)return 1; //两封一种办法
if(n==3)return 2; //三封两种办法装错
return (n-1)*(fun(n-1)+fun(n-2)); //其余的返回函数,类似于循环,要善于发现规律。
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
printf("%d\n",fun(n)); //主函数调用一次函数即解决问题
}
return 0;
}