C++作业03_01: 将写的n封信和n个信封全部装错。设Dn为n封信装错信封可能的种类

/* 邵发, 1309班, */

/*
作业03, 练习1

某人马虎,将写的n封信和n个信封全部装错。设Dn为n封信装错信封可能的种类。可用下面的递推公式:
Dn=(n-1)(Dn-1+Dn-2)
D2=1
D1=0
编程求Dn,n由键盘输入。

*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int Dn(int n)
{
	if(n==1) return 0;
	if(n==2) return 1;

	return (n-1) * (Dn(n-1) + Dn(n-2));
}

int ex03_01()
{
	int n;
	printf("enter a number: n=");
	scanf("%d", &n);

	int result = Dn(n);
	printf("D(%d) = %d \n", n, result);

	return 0;
}



你可能感兴趣的:(C++作业03_01: 将写的n封信和n个信封全部装错。设Dn为n封信装错信封可能的种类)